为什么我的 electron-forge with webpack 模板会生成带有空 node_module 文件夹的可分发文件?

Why does my electron-forge with webpack template makes distributables with empty node_module folders?

我最近正在试用 electron 12 和 webpack bundler,并且最近意识到每次它用 yarn make 构建的 node_module 文件夹构建一个可分发文件是 empty.Hence,因为我通过 ContextBridge 从 preload.js 公开了一些模块,应用程序崩溃并抛出丢失的错误消息。

无论如何,我手动将整个 node_module 文件夹复制到其中后就可以了。

electron-forge 的默认配置和 Webpack 捆绑了您的 main/preload/renderer 代码。

这主要有积极影响:

  • 更紧凑的可分发文件,没有 node_modules
  • 中存在的所有内容
  • 如果您使用的是 nodeIntegration: false,则渲染器中没有 require,因此如果您想使用依赖项,则必须捆绑代码
  • 更快的启动时间,因为:
    • require处理数百个甚至数千个单独的文件可能会很慢
    • 您的代码已最小化且更小,因此 Chrome 在启动时解析的代码更少

负面因素是什么?

  • 并非所有 node.js 模块都适用于捆绑
  • 本机模块通常与捆绑不兼容