首页 > 解决方案 > 为什么 Electron 需要保存为开发者依赖?

问题描述

根据官方网站,保存电子文件的正确方法是:

npm install electron --save-dev

Electron 实际上是运行应用程序所必需的(字面意思是:)require(),这与此处的最高投票答案背道而驰。那么,如果这是一个例外,我们为什么要做出这个例外呢?

标签: javascriptelectronpackage.jsoncommonjs

解决方案


您的包这一事实require与它是否应该被视为依赖项或 devDependency(在 npm 意义上)无关。例如,许多项目使用 webpack API(即const webpack = require('webpack'))但将其列为 devDependency。

原因在您链接到的帖子中也有说明:当您使用publish您的包时,如果消费者项目需要其他包来使用您的包,那么这些必须列为dependencies.

如果您的包仅使用某些模块来构建、测试或将它们捆绑到 dist 文件中(即消费者项目将使用什么),那么这些模块不应在dependencies. 我们仍然将它们列出以devDependencies供开发。

现在,对于电子应用程序,您将应用程序作为消费者项目的节点模块使用的可能性很小,因此上述约定并不真正相关。

此外,我们属于将electron包捆绑为构建输出的一部分的情况。您的用户无需electron从 npm 获取即可使用您构建的应用程序。因此它很好地匹配了 devDependency 的定义。

话虽如此,IIRC 一些电子打包程序将您捆绑dependencies到构建的应用程序中,因此您仍然需要严格地填写此列表。


推荐阅读