为什么Electron需要保存为开发人员依赖?

时间:2018-06-11 17:31:09

标签: javascript electron package.json commonjs

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

npm install electron --save-dev

运行应用程序实际上需要电子(完全按字面意思:require()),这与top voted answer here相反。那么为什么我们要做这个例外,如果这是一个呢?

2 个答案:

答案 0 :(得分:6)

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

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

如果您的软件包仅使用某些模块进行构建,测试或将它们捆绑到dist文件中(即消费者项目将使用的文件),则dependencies中不应提及这些模块。我们仍然将它们列在devDependencies中以供开发。

现在在电子应用程序的情况下,您几乎不可能将您的应用程序用作消费者项目的节点模块,因此上述约定并不真正相关。

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

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

答案 1 :(得分:0)

因为当您实际打包到安装程序时,不会使用这些二进制文件。大多数用于电子的安装程序/打包器将使用电子二进制文件构建包,而不是使用依赖项。