【发布时间】:2016-12-06 10:45:43
【问题描述】:
我正在尝试找出一种有效的方法来使用我的 Electron 应用程序捆绑和分发各种依赖项(节点模块和/或“客户端”端脚本和框架,如 Angular)。
虽然npm install module-name --save 的基本方法适用于开发,但最终在最小化您的应用程序大小和在运行时使用最小化资源时并不是那么好。例如,几乎所有的 npm 包(包括节点模块)都带有很多“额外的包袱”,比如自述文件、各种版本的组件(缩小版、未缩小版、ES2015、no-ES2015 等)。虽然这些文件非常适合开发,但所有这些文件绝对不需要包含在您将分发的版本中。
目前似乎有两种解决问题的方法:
-
Electron Builder 建议使用 2 文件
package.json系统。 - 仅在开发期间使用的任何依赖项都应使用
--save-dev进行 npm 安装,然后在构建应用程序以进行分发时使用修剪。
在这方面我有几个问题:
- 如果可以使用
--save-dev安装仅开发模块/依赖项,然后在实际应用构建/编译期间使用修剪,我不太确定为什么需要 2 文件package.json系统? - 无论使用上述哪种方法,您的应用程序中仍会包含完整的 npm 包,包括您的应用程序未使用的所有杂项/重复文件。那么如何“修剪” npm 包本身,以便只包含在运行时使用的实际文件(如缩小的脚本)?
- 将 Bower 用于“客户端”包(如 AngularJS 2、Bootstrap、jQuery 等)并将 npm 用于节点模块(如 fs-extra ) 在关注点分离和以后易于捆绑方面是更好的选择吗?
- WebPack 是否可以仅用于生成所需的文件,至少对于“cient 端”而言,这样只有真正的节点模块将包含在应用程序中,而其余部分将是 web-pack 编译的文件集的形式吗?
- 关于如何在实践中认可这种依赖关系和分发捆绑的实用技巧? Gulp 脚本?网络包脚本?项目结构?
谢谢。
【问题讨论】:
标签: node.js npm webpack electron