# 结论
--save等价于-S。--save-dev等价于-D。
就如同npm install等价于npm i一样,缩写写法。
各种安装命令
npm i xxxxx
npm i xxxxx -g
npm i xxxxx --save
npm i xxxxx -S
npm i xxxxx --save-dev
npm i xxxxx -D
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
说明:
npm i xxxxx会把模块安装到node_modules目录下,写入模块信息到package.json的dependencies中(npm 10.8.2)。npm i xxxxx -g会把模块安装到全局,地址是npm config get prefix的地址,不会写入模块信息到package.json中,在项目安装依赖时使用npm i不会安装到它。npm i xxxxx --save和npm i xxxxx -S等价,都是把模块安装到package.json中的dependencies下,作为项目生产环境的依赖。npm i xxxxx --save-dev和npm i xxxxx -D等价,都是把模块安装到package.json中的devDependencies下,作为项目开发环境的依赖。
TIPS
使用npm i安装package.json里的依赖时,dependencies和devDependencies两部分的包都会pull下来,所以在一般情况下装哪里只是个规范问题,装错了项目依然可以运行。
npm install --production(npm i --prod)或者注明NODE_ENV=production时,只会下载dependencies中的模块。
WARNING
如果是发布包到npm仓库,别人下载使用,此时依赖装在哪里有很大的影响。
比如eslint、node-sass这些只在开发环境使用的,应该装在devDependencies下,像vue、vuex这些在发布后依然需要使用,使用者在安装你所发布的包时,同时会安装dependencies下的依赖,不会去安装devDependencies,如果依赖包信息位置错误将会导致项目无法正常使用。