前言
在使用 npm 安装模块包的时候使用 npm install 模块名称 命令。但通常后面会加上 --save 或者 --save-dev,那么这两个命令有什么区别昵?以下是四种安装方式。以 webpack 为例,本文所使用的 npm 版本为 6.4.1,node 版本为 10.13.0。
一、 npm install webpack
安装在当前目录下,看很多文章说这种方式不能写入 dependencies 节点中,但通过亲测,这种方式也可以写入 dependencies 节点中,可通过 npm install 重新安装,可能是因为 npm 版本的区别吧,所以本质上与加 --save 并无区别。
二、 npm install webpack --save
安装在当前目录下,写入 package.json 的 dependencies 节点中,可通过 npm install 重新安装。
三、 npm install webpack --save-dev
安装在当前目录下,写入 package.json 的 devDependencies 节点中,可通过 npm install 重新安装。dependencies 与 devDependencies 的区别是,后者是开发时依赖的模块包,生产环境不需要。比如 安装的 babel(将 es6 转换成 es5 的工具),打包之后的代码就是 es5 代码,所以不需要此依赖模块。
四、npm install webpack -g
安装在全局目录下,不会写入 package.json 的任何节点中,执行 npm install 命令也不会重新安装。但是可使用 webpack 命令,比如查看 webpack 的版本,webpack -v。如果没有进行安装,则会出现类似“ webpack 不是内部或外部命令”的错误。所以在使用 webpack 时既要全局安装,能够使用命令,也要安装在当前目录下,以便查看和项目中使用。