我了解npm install something
和npm install something --save
之间的区别(对于任何想知道的人,第一个只会安装依赖项,而后者将安装依赖项并将其添加到您的package.json中)。
但是我不明白为什么首先有一个--save
选项。换句话说,为什么要安装依赖项而不将其添加到 package.json 文件中?为什么 --save 选项不是默认选项?
很多网站/npm模块/SaaS建议使用npm install something
安装他们的模块(例如newrelic就是其中之一),我错过了什么吗?
编辑:从NPM 5开始,--save
现在默认打开。
-
您将遇到这样一种情况,例如您需要安装一些模块而不向文件添加依赖项
package.json
例如,您只想尝试某个模块,并且不确定您是否真的在生产中或在部署时使用该模块,因此将模块依赖项添加到package.json
,只需尝试一下而不使用--save
。 这就是为什么没有--save
npm install
存在的原因。 -
但是对于大多数模块,您可能需要使用
--save
,例如。npm install express --save
,在这种情况下,您肯定知道您将为您的应用程序使用快递。 -
另一种情况,不使用
--save
,将是,npm install heapdump
或npm install nodemon
,我将使用它来测试我的应用程序性能,但不在包中添加依赖项.json:) -
另外,正如@surajck在下面的评论中所说:当您进行全局安装时,在这种情况下,使用
--save
添加到package.json
中添加依赖项是没有意义的。
我刚刚从 Jonathan Mills 关于 Pluralsight 的 JavaScript 最佳实践课程中学到了一个很好的技巧。从终端
: npm config set save=true
现在我不需要再记住--save
了。我现在也使用npm config set save-exact=true
因为我想要软件包的确切版本而不是^
前缀。
npm 5.0+ 版 npm install 会将模块添加到 package.json 文件中的依赖项列表中;对于早期版本的 npm,必须显式指定 --save
选项。然后,之后,在应用目录中运行 npm install 将自动在依赖项列表中安装模块。