问题:在使用Electron进行开发时,当你尝试使用任何需要jQuery的JS插件时,插件都找不到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,转到Console视图,然后单击<p>元素。你应该看到函数$没有定义或者类似的效果。
电子常见问题解答:
http://electron.atom.io/docs/faq/
我不能使用jQuery/RequireJS/Meteor/AngularJS在电子。
由于Electron的Node.js集成,有一些额外的
插入DOM的符号,如module, exports, require。这
属性会导致一些库出现问题,因为它们想插入
名称相同的符号。
要解决这个问题,你可以在Electron中关闭节点集成:
//在主进程中。
let win = new BrowserWindow({
webPreferences: {
nodeIntegration: false } });
但如果你想保留使用Node.js和Electron的能力
api,在包含之前,必须重命名页面中的符号
其他库:
<head>
<script>
window.nodeRequire = require;
delete window.require;
delete window.exports; delete window.module;
</script>
<script type="text/javascript" src="jquery.js"></script>
</head>
电子常见问题解答:
http://electron.atom.io/docs/faq/
我不能使用jQuery/RequireJS/Meteor/AngularJS在电子。
由于Electron的Node.js集成,有一些额外的
插入DOM的符号,如module, exports, require。这
属性会导致一些库出现问题,因为它们想插入
名称相同的符号。
要解决这个问题,你可以在Electron中关闭节点集成:
//在主进程中。
let win = new BrowserWindow({
webPreferences: {
nodeIntegration: false } });
但如果你想保留使用Node.js和Electron的能力
api,在包含之前,必须重命名页面中的符号
其他库:
<head>
<script>
window.nodeRequire = require;
delete window.require;
delete window.exports; delete window.module;
</script>
<script type="text/javascript" src="jquery.js"></script>
</head>