为什么需要使用npm --save-dev?

3
在npm安装包时,为什么需要在末尾添加--save-dev
例如:
npm install gulp-angular-templatecache --save-dev

根据在线文档(https://docs.npmjs.com/cli/install),它说“包将出现在您的devDependencies中。”这是什么意思?这是否意味着如果我不使用--save-dev,它会安装在不同的目录中?
2个回答

18

package.json有两个存储依赖信息的位置:“dependencies”对象和“devDependencies”对象。

当您安装应用并运行“npm install”时,它会同时拉取dependencies和devDependencies。但是,如果您执行“npm install --production”,它只会拉取dependencies,而不是devDependencies。

这样做的想法是devDependencies用于测试运行器和断言库等开发过程中需要的内容,但在实际部署应用程序时不需要这些内容。


3
package.json文件中,安装gulp-angular-templatecache模块后,它会自动将其添加到JSON中的devDependencies对象中,并像平常一样在应用程序的node_modules下本地安装。唯一的区别是它编辑了package.json文件以记住该依赖项。无论哪种方式安装,它都会安装在相同的位置。因此,在运行后,您的package.json现在看起来如下:
{
  ...
  "devDependencies": {
    ...
    "gulp-angular-templatecache": "^1.5.0"
  },
  ...
}

1
还要注意,--save 会添加到 dependencies 中,这可能更符合您的需求。 - John Zwinck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接