Summernote 和 Electron:未捕获错误:找不到模块"jquery"



我正在尝试在Electron应用程序中使用Summernote,但是当我在我的项目中包含summernote.js时,我不断收到此错误:

未捕获错误:在Module._resolveFilename找不到模块"jquery" (模块.js:470:15)在Function.Module._resolveFilename (C:\Users\me\AppData\Roamingpmode_modules\electron\dist\resources\electron.asar\common\reset-search-paths.js:35:12) at Function.Module._load (module.js:418:25) at Module.require (模块.js:498:17) 在 需要 (内部/模块.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 时,错误消失了。

有什么想法可以解决这个问题吗?

旧的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(),所以它试图像节点模块一样加载它并失败。您可以通过为节点注释部分来解决此问题。

<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 不使用 bootstrap,但是对于 BS4,我们需要它。 库应按上述方式添加。 加载JS库的一段时间顺序正在产生问题正在产生问题。 如果引导程序需要适当的.js文件。 -- 这是电子工程中的一个工作顺序

最新更新