Summernote 和 Electron:未捕获的错误:找不到模块“jquery”
Posted
技术标签:
【中文标题】Summernote 和 Electron:未捕获的错误:找不到模块“jquery”【英文标题】:Summernote and Electron: Uncaught Error: Cannot find module 'jquery' 【发布时间】:2017-08-10 11:14:49 【问题描述】:我正在尝试在Electron 应用程序中使用Summernote,但是当我在我的项目中包含summernote.js 时,我不断收到此错误:
未捕获的错误:在 Module._resolveFilename 处找不到模块“jquery” (module.js:470:15) 在 Function.Module._resolveFilename (C:\Users\me\AppData\Roaming\npm\node_modules\electron\dist\resources\electron.asar\common\reset-search-paths.js:35:12) 在 Function.Module._load (module.js:418:25) 在 Module.require (module.js:498:17) 在需要 (internal/module.js:20:19) 在 file:///C:/Users/me/projects/FO/dist/vendors/summernote/summernote.js:18:30 在 file:///C:/Users/me/projects/FO/dist/vendors/summernote/summernote.js:23:2
我已经在我的项目中包含了 jQuery,并且我正在使用其他 jQuery 插件没有任何问题:
<script>
window.$ = window.jQuery = require('./vendors/jquery-1.12.4-dist/jquery-1.12.4.min.js');
</script>
更新:这只发生在 0.6.16 以上的 Summernote 版本中。我最初使用的是 0.8.2,当我将版本更改为 0.6.16 时,错误消失了。
有什么办法可以解决这个问题吗?
【问题讨论】:
【参考方案1】:旧的 summernote.js 看起来像这样:
if (typeof define === 'function' && define.amd)
// AMD. Register as an anonymous module.
define(['jquery'], factory);
else
// Browser globals
factory(window.jQuery);
新的看起来像这样:
if (typeof define === 'function' && define.amd)
// AMD. Register as an anonymous module.
define(['jquery'], factory);
else if (typeof module === 'object' && module.exports)
// Node/CommonJS
module.exports = factory(require('jquery'));
else
// Browser globals
factory(window.jQuery);
因为 electron 包含 require() 它尝试像节点模块一样加载它并失败。您可以通过仅注释节点的部分来解决此问题。
【讨论】:
【参考方案2】:<script src="../../node_modules/jquery/dist/jquery.js"></script>
<script src="../../node_modules/jquery/dist/jquery.min.js"></script>
<script>
if (typeof module === 'object')
window.module = module; module = undefined;
</script>
<script src="../../node_modules/popper.js/dist/umd/popper.js."></script>
<script src="../../node_modules/popper.js/dist/umd/popper.min.js"></script>
<script src="../../node_modules/bootstrap/dist/js/bootstrap.js"></script>
<script src="../../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="../../node_modules/summernote/dist/summernote.js"></script>
<script src="../../node_modules/summernote/dist/summernote.min.js"></script>
<script>
$(function () $('#editor').summernote(); );
</script>
summernote-lite 不使用引导程序,但是对于 bs4,我们需要它。应以上述方式添加库。加载 js 库的一些时间顺序正在产生问题正在产生问题。如果引导程序需要正确的.js 文件。 -- 这是电子项目中的工作序列
【讨论】:
确实,正如@SurajRao 所说,请编辑您的答案以更新它并删除另一个。以上是关于Summernote 和 Electron:未捕获的错误:找不到模块“jquery”的主要内容,如果未能解决你的问题,请参考以下文章
我试图在 Electron.js 中单击按钮时打开新窗口,但未捕获 ReferenceError: require is not defined
Reactjs - 未捕获的类型错误:$node.attr(...).tooltip 不是函数