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