【问题标题】:Will electron-builder use dependencies that it doesn't needelectron-builder 是否会使用它不需要的依赖项
【发布时间】:2021-04-03 19:31:18
【问题描述】:
我一直在想这个问题,但我没有找到具体的答案。
我正在使用 Electron 和 React 构建一个完整的应用程序来制作用户界面。
我的问题是我是否应该为应用程序的每个部分(electron 和 react)提供 2 个完全不同的源代码,因为我没有非常了解包 electron-builder 的工作原理。
确切地说,因为我已经安装了 react (和 react 相关的软件包)以及我仅用于 ui 部分的其他一些,当我构建应用程序以进行分发,electron 是否会包含不需要的依赖项?使最终的捆绑包更大!
【问题讨论】:
标签:
javascript
node.js
reactjs
electron
electron-builder
【解决方案1】:
虽然electron-builder 具有configuration options 来指定要包含哪些文件,但它不能替代webpack 之类的工具。
electron-builder 为您的平台创建安装程序/目标工件并打包您指定的文件。
它不会通过摇树筛选您的node_modules 来创建仅包含您需要的代码的缩小脚本。
您可以将其与package.json 中的files 数组进行比较,该数组告诉npm pack 应将哪些文件放入压缩包中。
在默认配置中(我不知道你是否可以覆盖它,但通过设置忽略特定节点模块肯定值得一试)它将包含整个生产依赖项。
除了手动忽略 react 依赖项之外,另一种解决方案是将你的 react 应用程序保存在项目中自己的目录中,并且只包含构建工件。
gui/
|_build/
|_your built stuff
|_your react stuff
|_node_modules
|_package.json
main.js
node_modules
package.json
在这种情况下,您可以将 electron-builder 配置为包括 main.js 和 gui/build。有了这个electron-builder,应该只包含外部项目的生产依赖。