532 Stimmen

Browser: Uncaught ReferenceError: require ist nicht definiert

Ich habe eine Datei client.js, die auf der Client-Seite geladen wird. In dieser Datei habe ich Code, der Funktionen aus anderen JavaScript-Dateien aufruft. Mein Versuch war es,

var m = require('./messages');

zu verwenden, um den Inhalt von messages.js zu laden (genau wie auf der Server-Seite) und später Funktionen aus dieser Datei aufzurufen. Allerdings ist require auf der Client-Seite nicht definiert und wirft einen Fehler vom Typ Uncaught ReferenceError: require is not defined.

Diese anderen JavaScript-Dateien werden ebenfalls zur Laufzeit auf der Client-Seite geladen, da ich die Links im Header der Webseite platziere. Der Client kennt also alle Funktionen, die von diesen anderen Dateien exportiert werden.

Wie rufe ich diese Funktionen aus diesen anderen JavaScript-Dateien (wie z.B. messages.js) in der Hauptdatei client.js auf, die den Socket zum Server öffnet?

4voto

eaithy Punkte 224

Dies hat für mich funktioniert

  1. Holen Sie sich die neueste Version von der RequireJS-Downloadseite
    Es ist die Datei für RequestJS, die wir verwenden werden.
  2. Laden Sie es in Ihren HTML-Inhalt wie folgt:

Hinweise!

Verwenden Sie require(['moudle-name']) in your-script.js, nicht require('moudle-name')

Verwenden Sie const {ipcRenderer} = require(['electron']), nicht const {ipcRenderer} = require('electron')

3voto

Wael Chorfan Punkte 526

Selbst das wird nicht funktionieren. Ich denke, die beste Lösung ist Browserify:

module.exports = {
  func1: function () {
   console.log("Ich bin Funktion 1");
  },
  func2: function () {
    console.log("Ich bin Funktion 2");
  }
};

-getFunc1.js-
var common = require('./common');
common.func1();

3voto

Abdullah Punkte 49
window = new BrowserWindow({
    webPreferences: {
        nodeIntegration: true,
        contextIsolation: false
    }
});

1voto

Ich bestätige. Wir müssen hinzufügen:

webPreferences: {
    nodeIntegration: true
}

Zum Beispiel:

mainWindow = new BrowserWindow({webPreferences: {
    nodeIntegration: true
}});

Für mich wurde das Problem damit gelöst.

1voto

us_david Punkte 3895

Menschen fragen, was die Skript-Tag-Methode ist. Hier ist sie:

. 

Oder aus dem Netzwerk:

Sie müssen die richtige URL für Ihr Skript einsetzen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X