【问题标题】:How do devDependencies work when you yarn add <package>?当您添加 <package> 时,devDependencies 是如何工作的?
【发布时间】:2018-04-17 10:57:54
【问题描述】:
如果你有一个依赖于 packageA 的项目并且你 yarn add packageA 但 packageA 对 packageB 有一个 devDependency 来构建,那不应该导致 packageA 不适合你吗?既然 packageA 不能构建,除非它的 devDependencies 也被安装?
我想我的主要问题是,如果一个 pacakge 对像 babel 这样的构建工具有 devDependency,那么当它被项目yarn added 时,它是如何构建和工作的?像 webpack 这样的构建工具不应该是正常的依赖吗?
【问题讨论】:
标签:
npm
dependencies
yarnpkg
【解决方案1】:
不,他们不应该这样做,因为 yarn added 包已经构建在 devDependencies 可用的环境中。例如,当一个包需要 babel 或 webpack 来构建时,在发布期间,一个构建的包会在 CI/CD 管道中创建,它是有效的 es5 代码,这就是你从 npm 中提取的内容。之后无需构建。
【解决方案2】:
早上好 :)
如果你对 package.json 的依赖有依赖问题,解决起来很简单 =]
发生的情况是,你项目的模块需要的依赖模块(dependencies)必须作为包节点(module)安装在全局npm中,即:
npm install -g youPackageName
如果你已经在其他项目或当前项目中安装了一个模块,并且想将它变成一个全局包,你可以使用命令:
npm link youPackageName