next.js 具有多个版本文件的yarn monorepo,修复yarn版本检查或重置

xxhby3vn  于 2023-05-22  发布在  Yarn
关注(0)|答案(1)|浏览(213)

下面是我的NextJS monorepo应用程序的状态:

  • monorepo,通过yarn工作区管理多个私有包
  • develop是默认分支,测试环境,在main之前有多个提交
  • main分支的提交更少,并且只有那些准备好用于暂存环境的提交
  • main的提交通过PR推送,并从develop中挑选
  • 这些私有monorepo包的develop版本控制全部为绿色(yarn version check命令)
  • 由于cherry-picking/reverts/squash/等原因,main上的PR级和分支级禁用版本检查。yarn version checkmain分支上失败,出现以下错误:
yarn version check
➤ YN0001: UsageError: Your current branch contains multiple versioning files; this isn't supported:
- /Users/tbutcaru/Projects/my-nextjs-app/.yarn/versions/00648a82.yml
- /Users/tbutcaru/Projects/my-nextjs-app/.yarn/versions/009a6542.yml
- /Users/tbutcaru/Projects/my-nextjs-app/.yarn/versions/018f7b67.yml
- /Users/tbutcaru/Projects/my-nextjs-app/.yarn/versions/0197a805.yml
    at h (/Users/tbutcaru/Projects/my-nextjs-app/.yarn/plugins/@yarnpkg/plugin-version.cjs:5:3539)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
....
  • 提到的.yarn/versions/...文件不存在于我的main分支.

相同的问题herehere-关闭,无解决方案。我已经试过其他人在提到的链接中通过评论说的话了。

我试过了:

  • yarn version apply --all
  • yarn version check --interactive
  • 升级到最新的yarn 3.4.0(现在使用2.4.2)
  • 删除所有.yarn/versions文件dir + yarn.lock并重新安装所有软件包
  • 手动提升所有私有软件包版本
  • .yarn/versions文件目录从develop复制到main
  • 我在.yarnrc.yml文件中添加了changesetIgnorePatterns: - '.yarn/**/*',我不再得到上面的错误,而是下面的YN0000: @my-nextjs-app/shared-components@workspace:packages/shared-components has been modified but doesn't have a release strategy attached,我已经运行了yarn version check --interactive,所以包附带了一个发布策略,但yarn version check仍然失败。

......以上都没有奏效。
如何解决“多个版本控制文件”问题?或者,至少,我如何在main分支上完全重置/重新初始化yarn工作区包版本?
谢谢大家!

wnvonmuf

wnvonmuf1#

我没有找到任何解决方案,我的问题与初始设置中描述的原始职位,但我设法修复yarn version check --interactive.yarnrc.yml配置更改!
我将尝试提供更多关于问题和解决方案的背景信息。
最近,我将我的repo的默认分支从develop更改为main,这就是我如何结束上面的问题。默认分支开关背后的想法是移动到main并永久存档develop,这就创建了一个删除所有与develop相关的代码库和配置的任务。
因此,在从我的repo中删除任何develop分支剩余部分时,我已经达到了.yarnrc.yml,它具有以下配置:

changesetBaseRefs:
  - develop
  - origin/develop
  - upstream/develop

...将其更改为:

changesetBaseRefs:
  - main
  - origin/main
  - upstream/main

...导致yarn version check --interactiveyarn version check工作!

相关问题