我正在使用 atom/electron 编写一个应用程序它完全是根据现有的 html/css/js 源构建的。
经过几个小时的调整 grunt 脚本,我终于得到了一些东西。但是,我不断收到以下错误:
Uncaught ReferenceError: jQuery is not defined
经过一番尝试和把头撞到墙上后,我终于意识到 jQuery source 的这一点很聪明。是罪魁祸首。
特别是这一行
if ( typeof module === "object" && typeof module.exports === "object" ) {
// Assume node context
}
所以我不会发疯。 jQuery 实际上已加载,但它被引导到 Node 上下文而不是浏览器上下文,导致所有后续插件提示 window.jQuery 未定义。
我的第一个想法是在 jquery 源代码后面添加这个厚颜无耻的代码片段
if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
global.jQuery = global.$ = window.jQuery = window.$ = module.exports;
}
这看起来已经成功了。但是,我不是原子/Electron/网络套件方面的专家。有谁知道解决这个问题的更干净的方法以及是否更改 module.exports
<script>
中包含的文件的标签明智吗?
干杯
最佳答案
我也遇到了同样的问题。我不知道在哪里找到了这个解决方案,但这对我来说效果很好。
如果你想在 Electron 中使用 jQuery,你应该在每个 html 文件中将它作为一个模块。比 jQuery 作品或其他框架需要 jQuery。
<script>$ = jQuery = require("jquery")</script>
要安装 jQuery 模块,请使用 npm
npm install --save jquery
关于jquery - 在 Nodejs 上下文中使用 jQuery 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32341862/