当我只需要构建时,为什么yarn会安装dev依赖项?

时间:2018-03-28 09:21:43

标签: javascript node.js npm yarnpkg

如果我调用yarn add <my-package> Yarn 将安装<my-package>的依赖项和devDependencies。这是正常的行为吗?

我检查了文档,但是我找不到阻止它安装开发依赖项(我不需要)的方法。我相信 devDependencies 是用于将源代码编译到构建脚本中的依赖项。构建我的应用程序我只需要构建。

3 个答案:

答案 0 :(得分:11)

使用--production=true(简称--production--prod)。这确实是正常行为;纱线假设您处于“开发”环境中,除非您的NODE_ENV环境变量设置为“生产”。

看看Yarn的documentation

答案 1 :(得分:4)

the comment by @ddotsenko

<块引用>

不是“损坏”而是“设计糟糕”——如果纱线需要解析“完整树”,prod 仍然会下载和“安装”开发包。只需使用 yarn install --production --frozen-lockfile 并且匹配的 yarn.lock 和 --production 将按预期工作。

这有助于将 210 MB 的 node_modules 删除为 70 MB,类似于 npmpnpm

答案 2 :(得分:0)

Yarn有一个--production选项,这将导致它只安装生产依赖项。这显示为here