NPM install -save 和 -save-dev

最近在写Node程序的时候,突然对 npm install 的-save和-save-dev 这两个参数的使用比较混乱。其实博主在这之前对这两个参数的理解也是模糊的,各种查资料和实践后对它们之间的异同点略有理解。遂写下这篇文章避免自己忘记,同时也给node猿友一点指引。

我们在使用 npm install 安装模块的模块的时候 ,一般会使用下面这几种命令形式:

 # 安装模块到项目目录下
npm install moduleName

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

 # -save 的意思是将模块安装到项目目录下,并在package文件的dependencies节点写入依赖。 
npm install -save moduleName

 # -save-dev 的意思是将模块安装到项目目录下,并在package文件的devDependencies节点写入依赖。 
npm install -save-dev moduleName

那么问题来了,在项目中我们应该使用四个命令中的哪个呢?这个就要视情况而定了。下面对这四个命令进行对比,看完后你就不再这么问了。

npm install moduleName 命令

  1. 安装模块到项目node_modules目录下。
  2. 不会将模块依赖写入devDependencies或dependencies 节点。
  3. 运行 npm install 初始化项目时不会下载模块。

npm install -g moduleName 命令

  1. 安装模块到全局,不会在项目node_modules目录中保存模块包。
  2. 不会将模块依赖写入devDependencies或dependencies 节点。
  3. 运行 npm install 初始化项目时不会下载模块。

npm install -save moduleName 命令

  1. 安装模块到项目node_modules目录下。
  2. 会将模块依赖写入dependencies 节点。
  3. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
  4. 运行npm install --production或者注明NODE_ENV变量值为production时,会自动下载模块到node_modules目录中。

npm install -save-dev moduleName 命令

  1. 安装模块到项目node_modules目录下。
  2. 会将模块依赖写入devDependencies 节点。
  3. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
  4. 运行npm install --production或者注明NODE_ENV变量值为production时,不会自动下载模块到node_modules目录中。

总结
devDependencies 节点下的模块是我们在开发时需要用的,比如项目中使用的 gulp ,压缩css、js的模块。这些模块在我们的项目部署后是不需要的,所以我们可以使用 -save-dev 的形式安装。像 express 这些模块是项目运行必备的,应该安装在 dependencies 节点下,所以我们应该使用 -save 的形式安装。
原文地址

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 每一年的最后一天,我都习惯写点“年终总结”。关于这一年的记忆,似乎在脑海里勾不起太大的涟漪。或许是随着年龄的增长...
    慕青蓥阅读 962评论 0 0
  • 日子过得好坏,都不足为外人道也。你过得好,拥有豪车美女,告人那是炫耀;你没过好,吃糠咽菜,逢人就说,也没人给你一分...
    云上小草阅读 1,560评论 1 10
  • 又到了黄梅季节,潮湿的空气,下雨,下雨,然后仍旧是下不完的雨。以前时常空出时间会好好写点东西,整理想绪,现在这样的...
    芦间一支木阅读 3,199评论 2 3
  • 001 每当试图解决问题,应当对问题呈现的情形有一个清晰简洁的概括 这句话一出,好似在大海上漫无目的漂泊的我看见了...
    木繁阅读 1,300评论 0 1
  • 《轻而易举的健康》 第二十八天 第二十八课 《今天我认出我所有的祝福》 一旦你接纳身体本来的样子,你就有力量改变它...
    雨瑶喜悦王阅读 1,254评论 0 1