Электронный JQuery модуль не загружается
У меня проблема при загрузке jquery на электрон.
Проблема существует только когда на main.js я ставлю
mainWindow.loadURL('http://localhost:3000/menu');
и я отправляю обратно menu.html
однако, когда я использую этот метод, Jquery работает нормально
mainWindow.loadURL('ile://' + __dirname + '/menu.html');
Мне нужно, чтобы он работал с использованием localhost.
1 ответ
Это известная проблема. Это потому, что JQuery автоматически определяет наличие node.js - Electron добавляет в браузер контекст node.js, поэтому JQuery запутывается.
Лучший подход - установить JQuery через npm, используйте electron-rebuild
затем измените свой HTML-файл, чтобы он выглядел следующим образом:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>My Electron App</title>
<link href="stylesheets/main.css" rel="stylesheet" type="text/css">
<link href="./node_modules/bootstrap/dist/css/bootstrap.css" rel="stylesheet" type="text/css">
<script src="helpers/context_menu.js"></script>
<script src="helpers/external_links.js"></script>
</head>
<body>
<div class="container">
<h1 id="greet"></h1>
<p class="subtitle">
Welcome to <a href="http://electron.atom.io" class="js-external-link">Electron</a> app running on this magnificent <strong id="platform-info"></strong> machine.
</p>
<p class="subtitle">
You are in <strong id="env-name"></strong> environment.
</p>
<div class="jumbotron">
<h1>Bootstrap Test</h1>
<p>
Some content that should be in a Bootstrap "jumotron" box.
If it isn't, check your html code to make sure that the Bootstrap css is loaded.
Also check the dev console in the app to look for errors.
</p>
</div>
</div>
<script>window.$ = window.jQuery = require('jquery');</script>
<script src="app.js"></script>
</body>
</html>
Это стандартный шаблон, но со специальным сценарием загрузчика JQuery и загрузчиком app.js, перенесенным после этого, на тот случай, если вы делаете в обычном сценарии приложения что-либо, требующее jquery - например, загрузку Twitter Bootstrap теперь можно выполнить с помощью npm для установить загрузчик, делая electron-rebuild
затем, используя это в вашем app.js:
import bootstrap from 'bootstrap';