save-dev和save的区别

果你经常用NPM安装依赖包,会注意到安装包时的指令会分--save-dev--save两种,有什么区别呢?

  在项目中我们通常会有一个package.json的配置文件,用来保存项目的相关配置信息,其中最重要的就是该项目的相关依赖包。其他用户在拿到该配置文件时,只需要用npm install就可以根据配置文件下载相关的依赖包,搭建好与开发者相同的环境。

  npm install到底要安装什么依赖,这些都在配置文件中有标明。下图是一个package.json文件的内容:

  我们上面提到的依赖就是图片中的devDependenciesdependencies两项。其中的dependencies是项目在发布或运行时所依赖的模块和包,而devDependencies是项目在开发时所依赖的包。

  就我的理解而言,devDependencies中的包都是开发或打包时所需的工具,而在项目打包生成要发布的文件后,devDependencies中的包对于生成文件就没有任何用处了。反而dependencies中的包是相关的类库,是发布文件正常运行的环境基础,否则项目就无法正常运行。

  因此webpack类的工具应该是devDependencies,而jqueryreact就应该是dependencies

  讲到这里你应该就明白了,--save-dev--save的区别了。在安装包时加上--save-dev参数会在成功安装后,package.json文件的devDependence下会自动加上包的名称及版本。反之使用--save,则是在dependencies下添加依赖信息。

  正常使用npm install时,会下载dependenciesdevDependencies中的模块,当使用npm install --production或者注明NODE_ENV变量值为production时,只会下载dependencies中的模块。

 
 
 转载http://czhcn.top/

posted on 2016-12-05 11:06  西西莉亚via  阅读(1247)  评论(0编辑  收藏  举报

导航