我阅读了有关使用 --save
选项 here 的信息并且它说它会将安装的包添加到您的 package.json
文件中。但是为什么这不是自动的呢?你不是一直想要这个吗?
我的理解是 node_modules
是实际保存您的包代码的目录,而 package.json
是您已安装的所有包的引用/列表因此,当您将其推送到 repo 时,您只推送后者而不是前者,以节省空间。
然后,当其他人克隆或 fork 您的 repo 时,他们将拥有 package.json
来引用和安装所有必要的包来完成您的项目。
因此,您不是总是希望您的包在 package.json
中以便每个人都能获得所需的东西吗?
最佳答案
对于像 Bower 或 npm 这样的包管理器,我认为 --save
不是自动的,原因如下:
- 并非所有依赖项都是生产依赖项(参见
--save-dev
)。 - 有时您需要在不更改
package.json
的情况下测试包。 - 您可能更愿意在本地安装一些您的同事在其计算机上全局安装的软件包。
未安装 --save
的软件包不被视为依赖项,并保持独立。您可以使用 npm ls
轻松将它们检测为无关软件包,并使用 npm prune
立即删除它们。
现在,如果您认为无关的软件包是一件坏事,那么您当然可以在每次安装新软件包时使用 --save
。出于实际原因,请注意您可以使用 -S
快捷方式而不是 --save
。此外,如果您经常忘记使用该选项,您可以在 shell 中定义一个别名。
最后,如果您使用 Yarn,请注意 yarn add
命令会将每个包添加为依赖项。没有 --save
标志了。
关于javascript - 为什么不想使用 `--save` 选项进行 npm 安装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43701615/