如何在Yarn Workspace monorepo中为每个软件包安装二进制符号链接?

基于this article(以及网络上的其他评论),建议“提升每个devDependency,以便它们可用于每个软件包”。原因是避免使用粗体部分:

  

让我们来看一个示例,pkg1和pkg2将ESLint定义为devDependency,因此您已经在两个软件包中进行了定义,复制了定义和管理。您可以从两者中提取它,并将其设置为root package.json中的devDependency。这样,所有需要它的项目都可以使用它。

我了解这一点,这就是我一直在设置此特定项目的方式。

但是现在我遇到了一些问题,因为所有工具都安装在根目录下,并且从特定的package文件夹中运行时,这些工具的二进制文件不可用。我该如何解决?

我发现在包devDependency文件中将工具指定为package.json会向包node_modules/.bin文件夹中添加该工具的符号链接二进制文件。但是,如何避免最初出现的“重复定义和管理”问题?

例如:

root/package.json

"devDependencies": {
  "eslint": "6.6.0"
}

选项1)

root/packages/foo/package.json

"devDependencies": {
  "eslint": "6.6.0"
}

这将创建符号链接,但是我要管理重复的依赖项。

选项2)

root/packages/foo/package.json

"devDependencies": {
  "eslint": "^6.6.0"
}

这将创建符号链接,但是我有重复的依赖项要管理,尽管我不需要担心版本,除非我需要将所有软件包升级到下一个主要版本。

选项3)

root/packages/foo/package.json

"devDependencies": {
  "eslint": "*"
}

这将创建符号链接,并且没有重复的依赖项要管理。

选项4)

???

ypl528 回答:如何在Yarn Workspace monorepo中为每个软件包安装二进制符号链接?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3142220.html

大家都在问