为什么我的 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 模块都适用于捆绑
- 本机模块通常与捆绑不兼容
我最近正在试用 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 模块都适用于捆绑
- 本机模块通常与捆绑不兼容