Summernote и Electron: необработанная ошибка: не удается найти модуль «jquery»

Я пытаюсь использовать Summernote в Electron, но я продолжаю получать эту ошибку, когда включаю summernote.js в свой проект:

Неперехваченная ошибка: не удается найти модуль «jquery» в Module._resolveFilename (module.js:470:15) в Function.Module._resolveFilename (C:\Users\me\AppData\Roaming\npm\node_modules\electron\dist\resources\ electronic.asar\common\reset-search-paths.js:35:12) в Function.Module._load (module.js:418:25) в Module.require (module.js:498:17) в require (внутренний /module.js:20:19) в файле:///C:/Users/me/projects/FO/dist/vendors/summernote/summernote.js:18:30 в файле:///C:/Users/ я/проекты/FO/расстояние/поставщики/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>

ОБНОВЛЕНИЕ: это происходит только с версией Summernote выше 0.6.16. Сначала я использовал 0.8.2, но когда я изменил версию на 0.6.16, ошибка исчезла.

Любые идеи, как решить эту проблему?


person Ricky    schedule 19.03.2017    source источник


Ответы (2)


Старый 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(), он пытается загрузить его как модуль узла и терпит неудачу. Вы можете решить эту проблему, просто прокомментировав часть для node.

person zecharia    schedule 03.08.2017

<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. -- это рабочая последовательность в электронном проекте

person Radhe    schedule 16.09.2020
comment
Действительно, как говорит @SurajRao, отредактируйте свой ответ, чтобы обновить его и удалить другой. - person desertnaut; 16.09.2020