1.表面的区别
- --save: 把依赖包名称添加到 package.json 文件 dependencies 键下
- --save-dev: 把依赖包名称添加到 package.json 文件 devDependencies 键下
2.真正的区别
- –save : 安装生产环境需要的依赖包
- –save-dev: 安装开发环境需要的依赖包
npm自己的文档说dependencies是运行时依赖,devDependencies是开发时的依赖。
即devDependencies 下列出的模块,是我们开发时用的,比如 我们安装 js的压缩包gulp-uglify 时,我们采用的是 “npm install –save-dev gulp-uglify ”命令安装,因为我们在发布后用不到它,而只是在我们开发才用到它。
dependencies 下的模块,则是我们发布后还需要依赖的模块,譬如像jQuery库或者Angular框架类似的,我们在开发完后后肯定还要依赖它们,否则就运行不了。
比如,你写 ES6 代码,如果你想编译成 ES5 发布那么 babel 就是devDependencies。
如果你用了 jQuery,由于发布之后还是依赖jQuery,所以是dependencies。
3.补充
正常使用npm install
时,会下载dependencies和devDependencies中的模块,当使用npm install –production
或者注明NODE_ENV变量值为production
时,只会下载dependencies中的模块。
# i 是 install 的简写
# ' => ' 表示'等价于'的意思
# 写入到 dependencies 对象; -S 是 --save 的简写;
npm i module_name -S => npm install module_name --save
# 写入到 devDependencies 对象; -D 是 --save-dev 的简写
npm i module_name -D => npm install module_name --save-dev
# 全局安装
npm i module_name -g