Skip to content

chore: 升级 vite-plus 工具链至 0.2.x 并修复 vp test jsdom 解析失败 - #173

Merged
cc-hearts merged 1 commit into
mainfrom
chore/upgrade-vite-plus-toolchain
Aug 7, 2026
Merged

chore: 升级 vite-plus 工具链至 0.2.x 并修复 vp test jsdom 解析失败#173
cc-hearts merged 1 commit into
mainfrom
chore/upgrade-vite-plus-toolchain

Conversation

@cc-hearts

Copy link
Copy Markdown
Member

背景

vp test 一直报错,46 个测试文件全部 ERR_MODULE_NOT_FOUND (Cannot find package 'jsdom')

根因:全局 vp CLI(0.2.7)的 vp test 固定运行它自己内置的 vitest(位于全局缓存 ~/.cache/aube/virtual-store/,在项目目录之外)。内置 vitest 加载 environment: "jsdom" 时执行 import('jsdom'),Node 模块解析从缓存目录向上查找,永远到不了项目的 node_modules/jsdom

同时项目依赖还停留在旧工具链(vite-plus 0.1.14 时代,vitest 别名为 @voidzero-dev/vite-plus-test),与 vp 0.2.x 不兼容。

改动

工具链升级

  • pnpm-workspace.yamlvite@voidzero-dev/vite-plus-core@0.2.7vite-plus0.2.7vitest4.1.10(移除 @voidzero-dev/vite-plus-test 别名)
  • pnpm-lock.yamlvp install 更新

测试命令修复(jsdom 问题)

  • 由于 vp 0.2.x 的全局 CLI vp test 始终使用内置 vitest(上游设计),本项目内通过项目本地工具链运行测试:
    • package.jsontest:unit./node_modules/.bin/vp test(本地 vite-plus 0.2.7 解析到项目 vitest,jsdom 正常)
    • .github/workflows/ci.ymlvp testvp run test:unit
  • 本地验证:46 个测试文件 / 463 个测试全部通过

升级后 lint/format 修复

  • 修复 oxlint/tsgolint 7 新规则暴露的 2 处类型错误(docs/index.vue 可选链非空断言、model.ts 冗余联合类型)
  • 修复 1 处 TS2532(suggestion 测试)
  • vp check --fix 格式化相关文件(oxfmt 0.60 新规则)

验证

  • vp check — 0 errors
  • pnpm run test:unit — 46 文件 / 463 测试通过
  • vp run build:packages — 构建成功

- 升级 vite/vite-plus 至 0.2.7、vitest 至 4.1.10,移除 @voidzero-dev/vite-plus-test 别名
- 修复 vp test 内置 vitest 无法解析项目 jsdom 导致 46 个测试文件全部
  ERR_MODULE_NOT_FOUND 的问题:测试改走项目本地工具链,CI 改用 vp run test:unit
- 修复工具链升级后 oxlint/tsgolint 新规则暴露的类型错误并格式化相关文件
@cc-hearts
cc-hearts merged commit c817ad1 into main Aug 7, 2026
1 check passed
@cc-hearts
cc-hearts deleted the chore/upgrade-vite-plus-toolchain branch August 7, 2026 11:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant