npm install, npm install -g, npm install --save, npm install --save-dev之间的区别
1.npm install X
- 安装X到项目的node_modules文件夹
- 会修改package.json,在dependencies中写入依赖。(关于这一点,网上的大部分文章都是说,不会修改package.json,笔者通过实践发现,是会在dependencies中写入依赖的)
- npm install会自动安装X。(网上都说不会自动安装,实践是会自动安装的。笔者将项目的node_modules文件夹删除之后,重新运行npm install,发现X被安装了)
2.npm install -g X
- 安装模块到全局(这样安装了哪里都可以用,各个项目都可以用),一般是安装到node的安装目录的node_modules。如果配置了全局目录,就会安装到全局目录的node_modules目录
- 不会修改package.json,不会将模块依赖写入devDependencies或dependencies 节点
- npm install不会自动安装X
3.npm install X --save
- 安装X到项目的node_modules文件夹
- 会修改package.json,在dependencies中写入依赖
- npm install会自动安装X
- 运行npm install --production或者注明NODE_ENV变量值为production时,会自动下载模块到node_modules目录中
3.npm install X --save-dev
- 安装X到项目的node_modules文件夹
- 会修改package.json,在devDependencies中写入依赖
- npm install会自动安装X
- 运行npm install --production或者注明NODE_ENV变量值为production时,不会自动下载模块到node_modules目录中。
总结:
devDependencies 节点下的模块是我们在开发时需要用的,比如项目中使用构建工具webkpack、 gulp ,用来辅助压缩js、css、html等。这些模块在我们的项目部署后是不需要的,所以我们可以使用 --save-dev 的形式安装;像 bootstrap、vue、angular、express 这些模块是项目运行必备的,应该安装在 dependencies 节点下,所以我们应该使用 --save 的形式安装;工具类的比如构建工具gulp,需要使用命令来运行任务,则需要使用—global来安装。