Summernote和Electron:Uncaught Error:找不到模块' jquery'

时间:2017-03-19 02:20:30

标签: jquery angularjs electron summernote

我试图在Summernote应用中使用Electron,但是当我在项目中包含summernote.js时,我一直收到此错误:

  

未捕获错误:无法找到模块' jquery'在Module._resolveFilename   (module.js:470:15)在Function.Module._resolveFilename   (C:\用户\我\应用程序数据\漫游\ NPM \ node_modules \电子\ DIST \资源\ electron.asar \共同\复位搜索paths.js:35:12)   在Module.require的Function.Module._load(module.js:418:25)   (module.js:498:17)at require(internal / module.js:20:19)at   文件:/// C:/Users/me/projects/FO/dist/vendors/summernote/summernote.js:18:30   在   文件:/// 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,当我将ver更改为0.6.16时,错误消失了。

有任何想法如何解决此问题?

2 个答案:

答案 0 :(得分:0)

旧的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);
}

因为电子包含require(),它试图像节点模块一样加载它并失败。您可以通过仅为节点注释零件来解决此问题。

答案 1 :(得分:0)

<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库的某些时间顺序会造成问题。如果引导程序需要property.js文件。 -这是电子项目中的工作顺序