javascript - 为什么不想使用 `--save` 选项进行 npm 安装?

标签 javascript node.js npm package.json

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

我的理解是 node_modules 是实际保存您的包代码的目录,而 package.json 是您已安装的所有包的引用/列表因此,当您将其推送到 repo 时,您只推送后者而不是前者,以节省空间。

然后,当其他人克隆或 fork 您的 repo 时,他们将拥有 package.json 来引用和安装所有必要的包来完成您的项目。

因此,您不是总是希望您的包在 package.json 中以便每个人都能获得所需的东西吗?

最佳答案

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

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

未安装 --save 的软件包不被视为依赖项,并保持独立。您可以使用 npm ls 轻松将它们检测为无关软件包,并使用 npm prune 立即删除它们。

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

最后,如果您使用 Yarn,请注意 yarn add 命令会将每个包添加为依赖项。没有 --save 标志了。

关于javascript - 为什么不想使用 `--save` 选项进行 npm 安装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43701615/

相关文章:

javascript - 在 Rally SDK 中,显示 UI 组件中的隐藏字段

node.js - 从 Azure IoT Edge 设备到子设备的直接方法调用,无需 Internet 连接

node.js - NodeJS Docker 当前与最新

javascript - webpack 错误配置。模块具有未知属性 'loaders'

node.js - 如何自动链接本地 npm 包?

javascript - Ember js 使用假数据组件的集成测试中的模型创建真实的模型对象

javascript - 切换效果不起作用

javascript - 处理多个 JavaScript 检查的最佳方法

javascript - setTimeout函数和异步函数

node.js - 无法检查过时的全局 npm 包