Problème: lors du développement à l'aide d'Electron, lorsque vous essayez d'utiliser un plugin JS qui nécessite jQuery, le plugin ne trouve pas jQuery, même si vous chargez dans le bon chemin à l'aide des balises de script.
Par exemple,
<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>
L'exécution de ce code ci-dessus ne fonctionnerait pas. En fait, ouvrez DevTools, allez dans la vue Console et cliquez sur l' <p>
élément. Vous devriez voir cela function $ is not defined
ou quelque chose à cet effet.
require
fonction Electron ?Réponses:
Une solution IMO meilleure et plus générique:
Avantages
node-integration
d'être fauxsource ici
la source
window.module
commence par la même valeur quemodule
, donc votre code ne fonctionne pas tout à fait comme prévu. La bonne façon de le faire est d'enregistrermodule
à la place dans une autre propriété de fenêtre (inutilisée), commewindow.tempModule
. Pour confirmer ce que je dis, essayezconsole.log(module)
après votre dernière déclaration de le vérifier maintenantmodule === undefined
.Comme vu dans https://github.com/atom/electron/issues/254, le problème est dû à ce code:
Le code jQuery "voit" que son fonctionnement dans un environnement CommonJS et ignore
window
.La solution est vraiment simple , au lieu de charger jQuery
<script src="...">
, vous devez charger comme ceci:Remarque: le point avant le chemin est obligatoire , car il indique qu'il s'agit du répertoire courant. Aussi, pensez à charger jQuery avant de charger tout autre plug - in qui en dépend .
la source
'node-integration': false
en option pourBrowserWindow
.Une autre façon d'écrire
<script>window.$ = window.jQuery = require('./path/to/jquery');</script>
est:la source
réponse à la FAQ électronique:
http://electron.atom.io/docs/faq/
la source
Je viens de rencontrer ce même problème
npm install jquery --save
<script>window.$ = window.jQuery = require('jquery');</script>
travaillé pour moi
la source
Vous pouvez mettre des
node-integration: false
options internes sur BrowserWindow.par exemple:
window = new BrowserWindow({'node-integration': false});
la source
Une solution agréable et propre
npm install jquery --save
)<script> let $ = require("jquery") </script>
la source
Je fais face au même problème et cela a fonctionné pour moi!
Installer jQuery à l' aide de npm
Incluez ensuite jQuery de l'une des manières suivantes.
la source
avant votre importation jquery et vous êtes prêt à partir. plus d'infos ici .
la source
Je pense que je comprends votre lutte, je l'ai résolu un peu différemment.J'ai utilisé le chargeur de script pour mon fichier js qui comprend jquery.Le chargeur Script prend votre fichier js et le joint en haut de votre fichier vendor.js, il a fait la magie pour moi.
https://www.npmjs.com/package/script-loader
après avoir installé le chargeur de script, ajoutez-le à votre fichier de démarrage ou d'application.
import 'script! path / your-file.js';
la source
ok, voici une autre option, si vous voulez inclure un parent ...
la source
Si vous utilisez Angular2, vous pouvez créer un nouveau fichier js avec ce code:
et mettez-le juste après le chemin jquery, dans .angular-cli.json:
la source
im bâtiment et Angular App avec électron, ma solution était la suivante:
Donc, Jquery est chargé à partir de angular.json si sur le navigateur, sinon s'il s'agit d'une application construite par électrons, elle nécessitera un module à la place.
Si vous souhaitez importer jquery dans index.html au lieu d'importer depuis angular.json, utilisez la solution suivante:
la source
travaillé pour moi en utilisant le code suivant
la source
1.Installez jQuery à l'aide de npm.
2.
la source
Cela fonctionne pour moi.
Choses à considérer:
1) Mettez ceci dans la section juste avant
</head>
2) Inclure Jquery.min.js ou Jquery.js juste avant la
</body>
balisela source
vous pouvez essayer le code suivant:
la source
Pour ce problème, utilisez JQuery et d'autres js comme vous utilisez dans la page Web. Cependant, Electron a une intégration de nœuds, il ne trouvera donc pas vos objets js. Vous devez définir
module = undefined
jusqu'à ce que vos objets js soient chargés correctement. Voir l'exemple ci-dessousAprès avoir importé comme indiqué, vous pourrez utiliser le
JQuery
et d'autres choses en électron.la source
Installez simplement Jquery avec la commande suivante.
Après cela, veuillez mettre la ligne belew dans le fichier js que vous souhaitez utiliser Jquery
la source