我们在安装npm包的时候经常会遇到 --save-dev 和 --save 这两个命令参数,两个命令都是往package.json文件里写入信息,两者有什么区别呢?
1. --save 会把依赖包名称添加到 package.json 的 dependencies 键下,而 --save-dev 会添加到 devDependencies 键下。
2.dependencies 是运行时的依赖,而devDependencies是开发时的依赖。也就是说,采用 --save-dev 安装的包我们发布后是用不到的,只有在开发时用到。采用 --save 安装的包在发布后还会有依赖,例如:如下代码:
1 "devDependencies": { 2 "babel-core": "6.26.0", 3 "babel-loader": "7.1.2", 4 "babel-preset-env": "1.6.1", 5 "babel-preset-react": "6.24.1", 6 "css-loader": "0.28.8", 7 "extract-text-webpack-plugin": "3.0.2", 8 "file-loader": "^1.1.6", 9 "html-webpack-plugin": "2.30.1", 10 "node-sass": "^4.7.2", 11 "sass-loader": "6.0.6", 12 "style-loader": "0.19.1", 13 "url-loader": "^0.6.2", 14 "webpack": "3.10.0" 15 }, 16 "dependencies": { 17 "react": "16.2.0", 18 "react-dom": "16.2.0" 19 }
此外,当我们使用npm install 时会下载 dependencies 和 devDependencies 下的模块。使用 npm install -production或者给定NODE_ENV值为production时,就只下载 dependencies 下的模块。