npm install、npm install --save与npm install --save-dev、npm install -g区别
npm install X:
- 会把X包安装到node_modules目录中
- 不会修改package.json
- 之后运行npm install命令时,不会自动安装X
npm install X –save:
-
会把X包安装到node_modules目录中
-
会在package.json的dependencies属性下添加X
-
之后运行npm install命令时,会自动安装X到node_modules目录中
-
之后运行npm install –production或者注明NODE_ENV变量值为production时,会自动安装msbuild到node_modules目录中
npm install X –save-dev:
-
会把X包安装到node_modules目录中
-
会在package.json的devDependencies属性下添加X
-
之后运行npm install命令时,会自动安装X到node_modules目录中
-
之后运行npm install –production或者注明NODE_ENV变量值为production时,不会自动安装X到node_modules目录中
npm install X –g:
-
安装模块到全局,不会在项目node_modules目录中保存模块包。
-
不会将模块依赖写入devDependencies或dependencies 节点。
- 运行 npm install 初始化项目时不会下载模块。
-
npm
install
-g moduleName # -g 的意思是将模块安装到全局,具体安装到磁盘哪个位置,要看 npm config prefix 的位置,具体查看方法是在终端输入npm config edit,在弹出的文档中找到; prefix=C:\node,就是了。
使用原则:
运行时需要用到的包使用–save,否则使用–save-dev。
主要区别
devDependencies中的包是在开发中用到的,而发布后是找不到,而dependencies中的包是开发和线上都需要用到的。
我们在卸载某个包的时候也可以根据上面说的添上–save或–save-dev 就会在package.json中删除相应的配置。
总结
devDependencies 节点下的模块是我们在开发时需要用的,你写 ES6 代码,需要babel转换成es5,转换完成后,我们只需要转换后的代码,上线的时候,直接把转换后的代码部署上线,不需要bebal了,上线了不需要,这就是devDependencies,所以我们可以使用 -save-dev 的形式安装。如果你用了 jQuery,由于发布之后还是依赖jQuery,所以是dependencies,所以我们应该使用 -save 的形式安装。
以上这些只是为了学习做的总结,有部分摘自大牛原话,本人只是为了学习方便做的笔记,如有侵权,联系必删,致敬大牛!