Skip to content

Commit

Permalink
🐞 fix(vercel-deploy-tool): 处理turbo报的 Failed to add workspace 错误。是包匹配范…
Browse files Browse the repository at this point in the history
…围过大的问题。
  • Loading branch information
ruan-cat committed Oct 18, 2024
1 parent 0e3fed7 commit f39e1d5
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 22 deletions.
38 changes: 20 additions & 18 deletions .config/vercel-deploy-tool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,34 +6,34 @@ export default <Config>{
vercelProjectId: "",

// FIXME: 莫名其妙报错。不清楚为什么。
// afterBuildTasks: ["pnpm turbo build:docs"],
afterBuildTasks: ["pnpm turbo build:docs"],

// FIXME: execa运行的turbo命令,不会使用cache缓存,导致了重复构建。
deployTargets: [
// 01星球建议笔记
{
type: "userCommands",
targetCWD: "./packages/docs-01-star",
url: ["docs-01-star.ruancat6312.top"],
outputDirectory: "docs/.vitepress/dist/**/*",
userCommands: [
"pnpm -C=./packages/docs-01-star build:docs",
// "pnpm -C='./' turbo build:docs",
// "pnpm turbo build:docs",
],
},
// 1号项目
// {
// type: "userCommands",
// targetCWD: "./packages/monorepo-1",
// outputDirectory: "src/.vuepress/dist/**/*",
// url: ["monorepo-1.ruancat6312.top"],
// targetCWD: "./packages/docs-01-star",
// url: ["docs-01-star.ruancat6312.top"],
// outputDirectory: "docs/.vitepress/dist/**/*",
// userCommands: [
// // "pnpm -C=./packages/monorepo-1 build:docs"
// "pnpm -C=./packages/docs-01-star build:docs",
// // "pnpm -C='./' turbo build:docs",
// // "pnpm turbo build:docs",
// ],
// },
// 1号项目
{
type: "userCommands",
targetCWD: "./packages/monorepo-1",
outputDirectory: "src/.vuepress/dist/**/*",
url: ["monorepo-1.ruancat6312.top"],
userCommands: [
// "pnpm -C=./packages/monorepo-1 build:docs"
// "pnpm -C='./' turbo build:docs",
// "pnpm turbo build:docs",
],
},
// 2号项目 通过测试 多域名可以实现部署
// {
// type: "userCommands",
Expand Down Expand Up @@ -86,7 +86,9 @@ export default <Config>{
targetCWD: "./utils",
outputDirectory: "docs/.vuepress/dist/**/*",
url: ["utils.ruancat6312.top", "utils.ruan-cat.com"],
userCommands: ["pnpm -C=./utils build:docs"],
userCommands: [
// "pnpm -C=./utils build:docs"
],
},
],
};
10 changes: 6 additions & 4 deletions pnpm-workspace.yaml
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
# 写星号配置 是为了让其他工具可以读取该配置,实现匹配
# 一定要写成两个星号,否则会被 pnpm 识别为注释
#
# 出现故障 匹配范围过大 导致 .vercel 内的垃圾文件也被匹配到 被错误使用了。
packages:
- "packages/**"
- "demos/**"
- "packages/*"
- "demos/*"
- "utils"
- "learn-create-compoents-lib/**"
- "learn-create-compoents-lib/*"
# 配置系列的依赖包 为了实现便捷快速的配置分发
- "configs-package/**"
- "configs-package/*"

catalog:
typescript: 5.4.5
Expand Down
31 changes: 31 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1 +1,32 @@
# 综合性的单仓

## Failed to add workspace

猜测,可能是 turbo 对 package.json 的识别有误。不应该识别无意义的包。

试着做出筛选。

- https://turbo.build/repo/docs/reference/configuration#inputs

### 已处理该 bug

问题的起因是这样的

1. `.vercel/**/package.json`

> vc 的 build 命令,即 `vc build` 会直接运行 vercel.json 配置的 buildCommand 配置的命令,在目前(2024-10-18)的设计内,该配置为 null,故 vercel 的部署行为会实行静态部署,即把整个目录内的东西全部拷贝下来。会多出一个 `.vercel/**/package.json` 文件,这是符合预期的。
2. `pnpm-workspace.yaml` 的匹配语法变化了

> 为了适应 `commitlint.config.cjs` 的包索引配置,需要使用该配置提供的 glob 语法,来查询项目内全部的 package.json 包信息。
>
> ```yaml
> packages:
> - "packages/**"
> - "demos/**"
> ```
>
> 这个包语法是两个星星。查询的是目录内全部深度的,含有 package.json 文件的目录。那么 `.vercel/**/package.json` 也会被索引到。
3. turbo 运行报错
> 目前我还不清楚 turbo 是怎么处理项目内的 package.json 文件的,不清楚 turbo 会如何使用 `pnpm-workspace.yaml` 提供的查询配置。在更改 glob 语法,更改查询范围时,turbo 就工作正常了。

0 comments on commit f39e1d5

Please sign in to comment.