我阅读了关于使用–save选项
here,并且说它会将已安装的包添加到您的package.json文件中.但为什么这不是自动的?你不会一直想要这个吗?
我的理解是,node_modules是实际保存包的代码的目录,package.json是您安装的所有软件包的引用/列表,当您将其推送到repo时,只能将后者而不是前者,以节省空间.
然后,当其他人克隆或分销您的回购时,他们将使用package.json来引用并安装所有必需的软件包来处理您的项目.
因此,你不会总是希望你的包在package.json中,以便每个人都能得到需要的东西?
解决方法
像Bower或者npm这样的包裹经理,我认为 – 保存并不是自动的,原因如下:
>所有依赖关系不是生产依赖关系(请参阅–save-dev).
>有时你需要测试一个包而不改变你的package.json.
>您可能希望在本地安装一些您的同事在其计算机上全局安装的软件包.
没有安装的软件包不被视为依赖关系,而是保持分开.您可以轻松地检测到它们作为具有npm ls的无关软件包,并用npm prune即时删除它们.
现在,如果您认为无关的软件包是坏事,您当然可以使用–save每次您安装一个新的软件包.出于实际的原因,请注意,您可以使用-S快捷方式而不是-save.此外,如果您经常忘记使用该选项,则可以在shell中定义别名.