【问题标题】:Electron + Angular CLI how to package dist with electron-packagerElectron + Angular CLI 如何使用电子打包器打包 dist
【发布时间】:2018-08-10 20:26:00
【问题描述】:

我有一个要分发的 ElectronAnguarjs CLI 应用程序。

运行ng build --prod 后,我得到了一个~1Mb 的dist 目录。 然而,在运行electron-packager . 之后,应用程序的大小约为 350Mb。

我的电子 main.js 设置指向 distindex.html,但我猜 package 命令不使用 dist 来构建应用程序,而是使用臃肿的开发版本. 我尝试在dist 中运行electron-packager .,它仍然会创建一个巨大的应用程序。

有没有办法打包dist 文件夹? 我应该使用不同的打包工具吗?

我的目标是打包应用程序,这样就不会影响分发带宽。

【问题讨论】:

  • dist 目录不包含 node_modules。 Electron 将您的应用程序(来自 dist)与来自 node_modules 和节点环境的所需代码打包在一起。这就是为什么您的图像比 dist 目录大得多的原因。

标签: angular electron angular-cli electron-packager


【解决方案1】:

来自electron-packagerreadme.md

注意不要将你不想要的 node_modules 包含在你的 final 中 应用程序。如果你把它们放在 package.json 的 devDependencies 部分, 默认情况下,与这些依赖项相关的模块都不会 复制到应用程序包中。

角度 CLI 在内部使用 webpack 来捆绑您的代码。为了减少电子包的大小,任何已经被 webpack 捆绑的东西,目前在你的 package.jsondependencies 部分可以进入 devDependencies 部分。这将阻止 electron-packager 捆绑任何您实际上没有引用的 node_modules 代码,因为 webpack 在捆绑您的 dist 文件夹中的输出块时已经提取了它。

【讨论】:

  • 好建议。我需要花时间确保我删除了任何不必要的包含。我想知道 Angular 包含是否不是罪魁祸首。我没有那么多包。
  • 当前依赖项:角度 - 动画,通用,编译器,核心,表单,http,平台浏览器,平台浏览器动态,路由器其他 - 引导,核心-js,eonasdan-bootstrap-datetimepicker, jquery,machine-uuid,moment,ng2-eonasdan-datetimepicker,ngx-electron,ngx-select-ex,rxjs,zone.js
  • 我认为 webpack 已经在供应商捆绑包中捆绑了所有这些 Angular 代码,因此它可能是转移到 devDependencies 的候选者。
猜你喜欢
  • 1970-01-01
  • 2017-06-16
  • 2021-01-05
  • 2017-12-23
  • 2016-04-09
  • 2019-01-07
  • 2017-05-03
  • 2017-10-29
  • 2017-03-02
相关资源
最近更新 更多