npm install在安装node模块时,有两种命令参数可以把它们的信息写入package.json文件。

–save
–save-dev

那二者的区别在哪里呢?
–save会把依赖包名称添加到package.json文件dependencies键下,–save-dev则添加到package.json文件devDependencies键下。
例如:

{
"name": "Demo",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"},
"dependencies": {
"react": "~15.4.1",
"react-native": "0.42.3",
"react-native-router-flux": "^3.38.0",
"react-native-scrollable-tab-view": "^0.6.3"},
"devDependencies": {
"babel-jest": "19.0.0",
"babel-preset-react-native": "1.9.1",
"flow-bin": "^0.44.2",
"jest": "19.0.2",
"react-test-renderer": "~15.4.1"},
"jest": {
"preset": "react-native"}
}

devDependencies下列出的模块,是我们开发时用的依赖项,像一些进行单元测试之类的包,比如grunt-contrib-uglify,我们用它混淆js文件,它们不会被部署到生产环境。dependencies下的模块,则是我们生产环境中需要的依赖,即正常运行该包时所需要的依赖项。

如果执行npm install命令,默认会安装两种依赖。如果你只是单纯的使用这个包而不需要进行一些改动测试之类的,只安装dependencies而不安装devDependencies。

npm install --production

注意:通过“npm install packagename”进行安装,只会安装dependencies。如需安装devDependencies,执行如下命令:

npm install packagename --dev