Проблема: при разработке с использованием Electron, когда вы пытаетесь использовать любой плагин JS, требующий jQuery, плагин не находит jQuery, даже если вы загружаете по правильному пути с помощью тегов скрипта.
Например,
<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>
Выполнение этого кода выше не будет работать. На самом деле, откройте DevTools, перейдите в представление консоли и нажмите на <p>
элемент. Вы должны увидеть это function $ is not defined
или что-то на этот счет.
require
функцию Electron ?Ответы:
Лучшее и более общее решение IMO:
Преимущества
node-integration
быть ложнымисточник здесь
источник
window.module
начинается с того же значенияmodule
, что и ваш код не работает так, как ожидалось. Правильный способ сделать это - сохранитьmodule
в какое-то другое (неиспользуемое) свойство окна, напримерwindow.tempModule
. Чтобы подтвердить то, что я говорю, попробуйтеconsole.log(module)
после вашего последнего утверждения проверить это сейчасmodule === undefined
.Как видно из https://github.com/atom/electron/issues/254, проблема вызвана этим кодом:
Код jQuery «видит», что работает в среде CommonJS, и игнорирует
window
.Решение действительно простое , вместо загрузки через jQuery
<script src="...">
, вы должны загрузить так:Примечание: точка перед путем обязательна , поскольку она указывает на то, что это текущий каталог. Также не забудьте загрузить jQuery перед загрузкой любого другого подключаемого модуля, который зависит от него .
источник
'node-integration': false
как вариант дляBrowserWindow
.Другой способ написания
<script>window.$ = window.jQuery = require('./path/to/jquery');</script>
:источник
электронный FAQ ответ:
http://electron.atom.io/docs/faq/
источник
Просто наткнулся на эту же проблему
npm install jquery --save
<script>window.$ = window.jQuery = require('jquery');</script>
работал на меня
источник
Вы можете поместить
node-integration: false
внутренние параметры в BrowserWindow.например:
window = new BrowserWindow({'node-integration': false});
источник
Хорошее и чистое решение
npm install jquery --save
)<script> let $ = require("jquery") </script>
источник
Я столкнулся с той же проблемой, и это сработало для меня!
Установите jQuery с помощью npm
Затем включите jQuery одним из следующих способов.
источник
до импорта JQuery, и вы готовы. больше информации здесь .
источник
Я думаю, я понимаю вашу борьбу, я решил ее немного по-другому. Я использовал загрузчик сценариев для моего js-файла, который включает jquery. Загрузчик сценариев берет ваш js-файл и прикрепляет его к вершине вашего файла vendor.js, он сделал для меня чудо.
https://www.npmjs.com/package/script-loader
после установки загрузчика скриптов добавьте это в свой загрузочный файл или файл приложения.
импортировать 'script! path / your-file.js';
источник
хорошо, вот еще один вариант, если вы хотите, чтобы относительное включение ...
источник
Если вы используете Angular2, вы можете создать новый файл js с этим кодом:
и поместите его сразу после пути jquery, в .angular-cli.json:
источник
Я строю и Angular App с электроном, мое решение было следующее:
Таким образом, Jquery загружается из angular.json, если в браузере, в противном случае, если это приложение, созданное с помощью электронов, для него потребуется модуль.
Если вы хотите импортировать jquery в index.html вместо импорта из angular.json, используйте следующее решение:
источник
работал для меня, используя следующий код
источник
1. Установите jQuery, используя npm.
2.
источник
Это работает для меня.
Что нужно учитывать:
1) Поместите это в раздел прямо перед
</head>
2) Включите Jquery.min.js или Jquery.js прямо перед
</body>
тегомисточник
Вы можете попробовать следующий код:
источник
Для этой проблемы используйте JQuery и другие файлы js, которые вы используете на веб-странице. Однако у Electron есть интеграция узлов, поэтому он не найдет ваши объекты js. Вы должны установить,
module = undefined
пока ваши объекты js не будут загружены правильно. См. Пример нижеПосле импорта, как дано, вы сможете использовать
JQuery
и другие вещи в электронном виде.источник
Просто установите Jquery с помощью следующей команды.
После этого, пожалуйста, поместите строку в файл js, который вы хотите использовать Jquery.
источник