【问题标题】:Why and when does yarn decide not to hoist a package in a workspace?为什么以及什么时候 yarn 决定不在工作空间中提升包裹?
【发布时间】:2021-09-30 02:01:54
【问题描述】:

我正在使用yarn workspaces 处理一个大型项目。我知道 yarn 工作空间本质上做了两件事

  • 它自动化了我们多年前想要共享私有包时必须手动执行的符号链接过程
  • 为了提高效率,它将所有类似的包提升到node_modules 的顶部。

但是,我注意到我的包仍然包含它们自己的代码 node_modules,我不知道为什么。当我制作一个示例 monorepo 应用程序并说我将lodash 安装在一个应用程序中时,它会直接进入根目录node_modules

yarn 为什么以及何时决定在包的node_modules 中安装包?

【问题讨论】:

    标签: yarnpkg workspace yarn-workspaces


    【解决方案1】:

    我在 yarn 的 Discords 上找到了答案。 yarn 将始终提升,除非它与另一个版本冲突。

    【讨论】:

    • 只是想补充一点,有时由于对等依赖关系,它可能会“冲突”——这样就可以在多个级别上存在完全相同的库版本的副本。一个示例冲突是described here;我拥有的真实案例是here
    猜你喜欢
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 2011-01-03
    • 2016-12-01
    • 2015-08-08
    • 2018-11-20
    相关资源
    最近更新 更多