npm install --save,没有保存的用途是什么

Nep*_*oxx 14 node.js npm

我理解的差异之间npm install somethingnpm install something --save(任何人想知道,第一个将只安装的依赖,而后者将安装依赖,并把它添加到您的package.json).

但是我不明白为什么首先有一个--save选项.换句话说,为什么你想要在将它添加到package.json文件的情况下安装依赖项?为什么--save选项不是默认值?

很多网站/ npm模块/ SaaS建议使用npm install something(例如newrelic就是其中之一)安装他们的模块,我错过了什么?

编辑:从NPM 5起,--save现已在默认情况下.

Nae*_*ikh 13

  1. 您将有一个场景,例如您需要安装一些模块而不向package.json文件添加依赖项,例如.你只是想尝试一些模块,并且不确定你是否真的在生产中或部署时使用该模块,所以改为添加模块依赖package.json,只需试一试而不使用--save.这就是npm install没有--save存在的原因.

  2. 但对于大多数模块,您可能需要使用--save,例如.npm install express --save,在这种情况下,你肯定知道你将使用快递申请.

  3. 不使用的另一种情况--save是,npm install heapdump或者npm install nodemon,我会用它来测试我的应用程序性能,但不会在package.json中添加依赖项:)

  4. 另外,As @surajck在下面的评论中说:当你进行全局安装时,在这种情况下添加依赖项使用--save,package.json就没有意义了.

  • 你的答案/评论很好地解释了为什么不是这样,但是为了论证,我认为**默认情况下有`--save`是有意义的(因此提供`--nosave`选项).所以,`npm install something`会安装并保存它,`npm install something -g`会全局安装它(因此不能保存它,因为它没有意义)和`npm install something --nosave`会安装依赖而不是保存它.最后,它最终是相同的,我只是不确定哪一个更直接. (3认同)
  • 在进行/部署之前总是使用`--save`并运行[depcheck](https://www.npmjs.com/package/depcheck)会不会更容易/更好? (2认同)

Tod*_*Tod 10

我刚从Jonathan Mills的Pluralsight JavaScript最佳实践课程中学到了一个很好的技巧.从终端:
npm config set save=true
现在我不再需要记住--save了.我现在也使用
npm config set save-exact=true
因为我希望包的确切版本不是^前缀.