npm install -g/--save/--save-dev的区别

234 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第22天,点击查看活动详情

npm install XX (简写为npm i XX)

  • 会把XX包安装到node_modules目录中
  • npm5版本之前,XX不会自动写入package.json
  • npm5之后会自动写入package.jsondependencies属性中(与--save相同)

运行npm i axios效果如下:

image.png

npm install XX -g

  • -g 的意思是将模块安装到全局,具体安装到磁盘哪个位置,要看 npm config prefix 的位置

  • 具体查看方法是在终端输入npm config edit,在弹出的文档中找到; prefix=C:\node就是了

运行npm i axios -g效果如下:

在这里插入图片描述

npm install XX --save(简写为npm i XX -S)

  • 会把XX包安装到node_modules目录中,

  • 会在package.jsondependencies属性下添加XX

  • -运行npm install --production或者注明NODE_ENV变量值为production时(生产环境下安装依赖),会自动下载模块到node_modules目录中。

  • npm5之后可以被npm i xx替代

dependencies中的依赖是生产环境中的依赖,在项目部署后的生产环境中也会被安装,例如:

用了 axios请求,由于发布到生产后还是要用到axios,这就可以将axios安装到 dependencies

运行npm i axios --save效果如下:

image.png

npm install XX --save-dev(简写为npm i XX -D)

  • 会把XX包安装到node_modules目录中

  • 会在package.jsondevDependencies属性下添加XX

  • 运行npm install --production或者注明NODE_ENV变量值为production时(生产环境下安装依赖),不会自动下载模块到node_modules目录中。

devDependencies中的依赖是仅在开发环境中的依赖,在项目部署后的生产环境中不会被安装,例如:

ES6 代码时,需要 babel 转换成 es5 ,转换完成后,我们只需要转换后的代码,上线的时候,直接把转换后的代码部署到生产环境,不需要 bebal 了,生产环境不需要,这就可以将babel安装到 devDependencies

安装ES2015转码规则的babel: npm install --save-dev babel-preset-es2015

image.png

结语

关于npm的具体使用可以查阅Node.js | 强大的包管理器:npm 和 yarn