npm 安装参数中的 --save-dev 是什么意思

看到有些 node.js 的包安装的时候都加上 --save-dev 参数,不知道这参数是做什么的,加和不加有什么区别吗?

$ npm install xxx --save-dev
阅读 138k
5 个回答

当你为你的模块安装一个依赖模块时,正常情况下你得先安装他们(在模块根目录下npm install module-name),然后连同版本号手动将他们添加到模块配置文件package.json中的依赖里(dependencies)。

-savesave-dev可以省掉你手动修改package.json文件的步骤。
spm install module-name -save 自动把模块和版本号添加到dependencies部分
spm install module-name -save-dve 自动把模块和版本号添加到devdependencies部分

至于配置文件区分这俩部分, 是用于区别开发依赖模块和产品依赖模块, 以我见过的情况来看 devDepandencies主要是配置测试框架, 例如jshint、mocha。

这一命令的Pull记录
官方文档
站内关于devdependencies的提问

我主要是基于浏览器写Javascript, npm用的少, 以上是个人理解。

npm install takes 3 exclusive, optional flags which save or update the package version in your main package.json:

  1. -S, --save: Package will appear in your dependencies.

  2. -D, --save-dev: Package will appear in your devDependencies.

  3. -O, --save-optional: Package will appear in your optionalDependencies.

from https://docs.npmjs.com/cli/install

-S, --save: Package will appear in your dependencies.
-D, --save-dev: Package will appear in your devDependencies.
-O, --save-optional: Package will appear in your optionalDependencies.

从字面上来看,简单地说,就是把模块装在当前开发目录。
比如,你进入了D盘dev开发目录,那么就自动在dev开发目录下生成node modules文件夹,并在该文件夹下安装该模块。执行命令时,要寻找该模块定义,先从dev目录开始寻找,相比较于全局安装,速度就非常快了。

这个跟js中的局部变量,全局变量的定义比较类似。

新手上路,请多包涵

借楼
问一下,那些包需要装在dependencies 和 装在devDependencies 就是--save 和 --save-dev,有什么好的理解方式吗。

推荐问题
宣传栏