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

我阅读了关于使用–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中定义别名.

最后,如果您使用纱线,纱线添加命令将添加每个包作为依赖.没有–save标志了.

相关文章

事件冒泡和事件捕获 起因:今天在封装一个bind函数的时候,发现el.addEventListener函数支持第三个参数...
js小数运算会出现精度问题 js number类型 JS 数字类型只有number类型,number类型相当于其他强类型语言...
什么是跨域 跨域 : 广义的跨域包含一下内容 : 1.资源跳转(链接跳转,重定向跳转,表单提交) 2.资源...
@ "TOC" 常见对base64的认知(不完全正确) 首先对base64常见的认知,也是须知的必须有...
搞懂:MVVM模式和Vue中的MVVM模式 MVVM MVVM : 的缩写,说都能直接说出来 :模型, :视图, :视图模...
首先我们需要一个html代码的框架如下: 我们的目的是实现ul中的内容进行横向的一点一点滚动。ul中的内容...