根据官方网站,保存电子文件的正确方法是:
npm install electron --save-dev
Electron实际上是运行应用程序所必需的(字面意思是:require()
(,这与这里投票最多的答案背道而驰。那么,如果这是一个例外,我们为什么要例外呢?
你require
包的事实与它是否应该被视为依赖项或 devDependency (在 npm 意义上(无关。 例如,许多项目使用 webpack API(即const webpack = require('webpack')
(,但将其列为开发依赖项。
原因也在您链接到的帖子中进行了解释:当您publish
您的软件包时,如果消费者项目需要其他软件包来使用您的软件包,那么这些软件包必须列为dependencies
。
如果你的包只使用一些模块来构建、测试,或者将它们捆绑到dist文件中(即消费者项目将使用的文件(,那么这些模块不应该在dependencies
中提及。我们仍然将它们列在开发devDependencies
中。
现在,在电子应用程序的情况下,您几乎没有机会将应用程序用作消费者项目的节点模块,因此上述约定并不真正相关。
此外,我们属于electron
包捆绑为构建输出的一部分的情况。用户无需从 npm 获取electron
即可使用生成的应用。因此,它与 devDependency 的定义非常匹配。
话虽如此,IIRC 一些电子打包器将您的dependencies
捆绑到构建的应用程序中,因此您仍然需要严格填写此列表。
因为当您实际打包到安装程序中时,不会使用这些二进制文件。大多数电子安装程序/打包程序将使用电子二进制文件构建软件包,而不是使用依赖项。