为什么我的electron forge with webpack模板使用空节点\模块文件夹制作可分发文件?

为什么我的electron forge with webpack模板使用空节点\模块文件夹制作可分发文件?,webpack,electron,node-modules,electron-forge,Webpack,Electron,Node Modules,Electron Forge,我最近用webpack bundler试用了electron 12,最近意识到每次它用Thread make构建一个可分发的应用程序时,构建的node_模块文件夹都是空的。因此,由于我通过preload.js中的ContextBridge公开了一些模块,应用程序崩溃并抛出丢失的错误消息 无论如何,在我手动将整个node_模块文件夹复制到其中之后,它就可以工作。使用electron forge和Webpack绑定主/预加载/渲染器代码的默认配置 这主要有积极的影响: 更紧凑的可分发产品,无需no

我最近用webpack bundler试用了electron 12,最近意识到每次它用
Thread make
构建一个可分发的应用程序时,构建的node_模块文件夹都是空的。因此,由于我通过preload.js中的
ContextBridge
公开了一些模块,应用程序崩溃并抛出丢失的错误消息


无论如何,在我手动将整个node_模块文件夹复制到其中之后,它就可以工作。

使用
electron forge
和Webpack绑定主/预加载/渲染器代码的默认配置

这主要有积极的影响:

  • 更紧凑的可分发产品,无需
    node\u模块中存在的所有积垢
  • 如果您使用的是
    nodeIntegration:false
    渲染器中没有
    require
    ,因此如果您想使用依赖项,则需要绑定代码
  • 更快的启动时间,因为:
    • require
      'ing成百上千个单独的文件可能会很慢
    • 您的代码被最小化和更小,因此在启动时需要Chrome解析的代码更少
什么是否定的

  • 并非所有node.js模块都可以使用捆绑
  • 本机模块通常与绑定不兼容

您的依赖项是否为
devdependency
?可分发文件中不包括DevDependency。不,我将我的预期DevDependency分开。这是我的依赖项列表<代码>“依赖项”:“{@fortawesome/fontawesome free”:“^5.15.3”,“@reduxjs/toolkit”:“^1.5.1”,“axios”:“^0.21.1”,“引导”:“^5.0.0”,“electron is dev”:“^2.0.0”,“electron squirrel启动”:“^1.0.0”,“qrcode”:“^1.4.4.4”,“react”:“^17.0.2”,“react引导”:“^1.5.2”,“react dom”:“^17.0.2”,“react-redux”:“^7.2.4”、“redux”:“^4.1.0”、“redux-thunk”:“^2.3.0”}在dist中,依赖项(如qrnode)是从预加载脚本导入的。这就是为什么我无法在渲染器上使用qrcode和其他模块的原因。谢谢。