为什么你不想为npm install使用`--save`选项?

sta*_*lei 15 javascript node.js npm package.json

我在这里阅读了有关使用该--save选项的信息,并说它会将已安装的软件包添加到您的package.json文件中.但为什么这不是自动的呢?你不一定要这个吗?

我的理解是,node_modules实际保存包的代码的目录是package.json你安装的所有软件包的引用/列表,这样当你把它推到一个repo时,你只推动后者而不是前者,以节省空间.

然后,当其他人克隆或分离您的仓库时,他们将有package.json参考并安装所有必要的包来处理您的项目.

因此,难道你不总是希望你的包装package.json在每个人都能得到所需的东西吗?

Bad*_*bra 13

对于像Bowernpm这样的包管理器,我认为--save不是自动的,原因如下:

  1. 并非所有依赖项都是生产依赖项(请参阅参考资料--save-dev).
  2. 有时你需要在不改变你的情况下测试包package.json.
  3. 您可能更喜欢在本地安装一些同事在其计算机上全局安装的软件包.

安装的软件包--save不被视为依赖项并保持独立.您可以轻松地将它们作为无关的包装进行检测,npm ls并立即将其删除npm prune.

现在,如果您认为无关的包是一件坏事,您当然可以在--save每次安装新包时使用.出于实际原因,请注意您可以使用-S快捷方式代替--save.此外,如果您经常忘记使用该选项,则可以在shell中定义别名.

最后,如果您使用Yarn,请注意该yarn add命令将每个包添加为依赖项.没有--save国旗了.

  • 您可以手动修改`package.json`(不推荐)或重新运行`npm i <pkg> -S`. (5认同)
  • [`npm install` 现在默认保存到 package.json](https://docs.npmjs.com/cli/install.html)。如果您不希望将其添加到项目的 package.json 中,则需要使用 to --no-save 标志 (2认同)