在我们开发中会经常用到npm i 这个命令,有npm i -S,npm i -g , npm i -D,npm install --save-dev, npm i -save,那么这几种命令到底有什么区别呢?
要先知道这几种命令的区别,我们首先要认识两个单词,分别是dependencies和devDependencies。
dependencies:是生产和开发都会用到的依赖包,会被打包到项目中。
devDependencies:是只在开发环境中使用的依赖包,不会被打包到项目中。
下面我会放一张用package.json的默认图,然后分别运行npm i -S、npm i -save、npm i -D、npm i --save-dev来看他们分别有什么区别:
npm i -S
我们以安装echarts为例:
可以发现,安装在了dependencies下,也就是生产和开发都会用到。
npm i -save
通过图片我们可以发现,npm i -save 下载的依赖包也是在dependencies中的。
也就是说npm i -S 和 npm i -save是等价的,下载的依赖包都是在dependencies中,也就是开发和生产都会用到。
npm i -D
npm i -D执行后,安装在了devDependencies中,也就是只有开发环境使用。
npm i --save-dev
可以发现,依然安装在了只有开发环境使用的devDependencies中。
npm i
总结
-
npm i -S(-save)下载的依赖包是安装在dependencies中,生产和开发环境都会使用。
-
npm i -D(--save-dev)下载的依赖包安装在devDenpendencies中,只有在开发环境中使用。
-
npm i -g 是把模块安装到全局,不会在项目的node包中保存,也不会将注入dependencies和devDependencies中。
-
npm i 的话,是安装在dependencies中,也就是说生产和开发都会用到。