Problem: Wenn Sie während der Entwicklung mit Electron versuchen, ein JS-Plugin zu verwenden, für das jQuery erforderlich ist, findet das Plugin jQuery nicht, selbst wenn Sie mithilfe von Skript-Tags den richtigen Pfad laden.
Zum Beispiel,
<body>
<p id="click-me">Click me!</p>
...
<script src="node_modules/jquery/dist/jquery.min.js"></script> //jQuery should be loaded now
<script>$("#click-me").click(() => {alert("Clicked")});</script>
</body>
Das Ausführen dieses Codes oben würde nicht funktionieren. Öffnen Sie DevTools, wechseln Sie zur Konsolenansicht und klicken Sie auf das <p>
Element. Sie sollten das function $ is not defined
oder etwas in diesem Sinne sehen.
require
?Antworten:
Eine bessere und allgemeinere Lösung IMO:
Leistungen
node-integration
falsch seinQuelle hier
quelle
window.module
mit dem gleichen Wert wie beginntmodule
, sodass Ihr Code nicht ganz wie erwartet funktioniert. Der richtige Weg, dies zu tun, besteht darin,module
stattdessen in einer anderen (nicht verwendeten) Fenstereigenschaft zu speichern , wie zwindow.tempModule
. Um zu bestätigen, was ich sage, versuchen Sieconsole.log(module)
nach Ihrer letzten Aussage, dies jetzt zu überprüfenmodule === undefined
.Wie unter https://github.com/atom/electron/issues/254 zu sehen ist, wird das Problem durch diesen Code verursacht:
Der jQuery-Code "sieht", dass er in einer CommonJS-Umgebung ausgeführt wird, und ignoriert ihn
window
.Die Lösung ist wirklich einfach . Anstatt jQuery zu
<script src="...">
laden, sollten Sie wie folgt laden:Hinweis: Der Punkt vor dem Pfad ist erforderlich , da er angibt, dass es sich um das aktuelle Verzeichnis handelt. Denken Sie auch daran, jQuery zu laden, bevor Sie ein anderes Plugin laden, das davon abhängt .
quelle
'node-integration': false
als Option fürBrowserWindow
.Eine andere Art zu schreiben
<script>window.$ = window.jQuery = require('./path/to/jquery');</script>
ist:quelle
Antwort auf die FAQ zu Elektronen:
http://electron.atom.io/docs/faq/
quelle
Bin gerade auf das gleiche Problem gestoßen
npm install jquery --save
<script>window.$ = window.jQuery = require('jquery');</script>
arbeitete für mich
quelle
Du kannst Geben
node-integration: false
Optionen in BrowserWindow einfügen.z.B:
window = new BrowserWindow({'node-integration': false});
quelle
Eine schöne und saubere Lösung
npm install jquery --save
)<script> let $ = require("jquery") </script>
quelle
Ich stehe vor dem gleichen Problem und das hat bei mir funktioniert!
Installieren Sie jQuery mit npm
Schließen Sie dann jQuery auf eine der folgenden Arten ein.
quelle
vor dem jquery importieren und los geht's. Mehr Infos hier .
quelle
Ich glaube, ich verstehe Ihren Kampf. Ich habe ihn ein wenig anders gelöst. Ich habe den Script Loader für meine JS-Datei verwendet, einschließlich jquery.Script Loader. Er nimmt Ihre JS-Datei und hängt sie an die Datei Ihres Anbieters an. Js-Datei hat die Magie für mich bewirkt.
https://www.npmjs.com/package/script-loader
Fügen Sie dies nach der Installation des Script Loader in Ihre Boot- oder Anwendungsdatei ein.
import 'script! path / your-file.js';
quelle
ok, hier ist eine andere Option, wenn Sie einen Verwandten einschließen möchten ...
quelle
Wenn Sie Angular2 verwenden, können Sie mit diesem Code eine neue js-Datei erstellen:
und setzen Sie es direkt nach jquery path in .angular-cli.json:
quelle
Ich baue und Angular App mit Elektron, meine Lösung war die folgende:
Jquery wird also von angular.json geladen, wenn es sich um einen Browser handelt. Wenn es sich um eine elektronengebaute App handelt, ist stattdessen ein Modul erforderlich.
Wenn Sie jquery in index.html importieren möchten, anstatt aus angle.json zu importieren, verwenden Sie die folgende Lösung:
quelle
arbeitete für mich mit dem folgenden Code
quelle
1.Installieren Sie jQuery mit npm.
2.
quelle
Das funktioniert bei mir.
Dinge, die man beachten muss:
1) Setzen Sie dies in Abschnitt direkt vor
</head>
2) Fügen Sie Jquery.min.js oder Jquery.js direkt vor dem
</body>
Tag einquelle
Sie können den folgenden Code versuchen:
quelle
Verwenden Sie für dieses Problem JQuery und andere js, die Sie auf der Webseite verwenden. Electron verfügt jedoch über eine Knotenintegration, sodass Ihre js-Objekte nicht gefunden werden. Sie müssen festlegen,
module = undefined
bis Ihre js-Objekte ordnungsgemäß geladen sind. Siehe Beispiel untenNach dem Import wie angegeben können Sie die
JQuery
und andere Dinge in Elektron verwenden.quelle
Installieren Sie einfach Jquery mit dem folgenden Befehl.
Danach setzen Sie bitte eine neue Zeile in die js-Datei, die Sie mit Jquery verwenden möchten
quelle