npm install、npm install --save与npm install --save-dev区别
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目录中
使用原则:
运行时需要用到的包使用–save,否则使用–save-dev。
package.json中dependencies和devDependencies的部分都会被安装,
区别在于前者用于生产环境,后者用于开发环境
-g 表示全局安装,通常用于安装脚手架等工具
–save(-s) 表示本地安装,会被加至dependencies部分
–save-dev 表示本地安装,会被加至devDependencies部分
什么都不加也会安装,但是不会加至package.json中
当你为你的模块安装一个依赖模块时,正常情况下你得先安装他们(
在模块根目录下npm install module-name),然后连同版本号手动将
他们添加到模块配置文件package.json中的依赖里(dependencies)
-save和save-dev可以省掉你手动修改package.json文件的步骤。
npm install module-name -save 自动把模块和版本号添加到dependencies部分(生产环境)
"dependencies": {
"gulp-install": "^0.6.0"
}
npm install module-name -save-dve 自动把模块和版本号添加到devDependencies
部分(开发环境)
"devDependencies": {
"del": "^2.2.2",
"gulp": "^3.9.1",
"gulp-autoprefixer": "^3.1.0",
"gulp-cached": "^1.1.0",
"gulp-changed": "^1.3.0",
"gulp-clean": "^0.3.2",
"gulp-concat": "^2.6.1",
"gulp-cssnano": "^2.1.2",
"gulp-if": "^2.0.1",
"gulp-imagemin": "^3.1.1",
"gulp-install": "^0.6.0",
"gulp-jshint": "^2.0.4",
"gulp-livereload": "^3.8.1",
"gulp-load-plugins": "^1.5.0",
"gulp-notify": "^2.2.0",
"gulp-plumber": "^1.1.0",
"gulp-rename": "^1.2.2",
"gulp-sass": "^3.1.0",
"gulp-sass-inheritance": "^0.5.1",
"gulp-sourcemaps": "^1.6.0",
"gulp-uglify": "^2.0.1",
"inheritance": "^0.2.1",
"jshint": "^2.9.4",
"path": "^0.12.7"
}
通过这些命令,我们会得到一个新的package.json。假如:删除node_modules目录,然后执行 npm install --production
,可以看到,npm只帮我们自动安装package.json中dependencies部分的模块;如果执行npm install ,则package.json中指定的dependencies和devDependencies都会被自动安装进来。