voidzero-dev / voidzero-dev/vite-plus

fix(migrate): tolerate nested npm overrides during bootstrap detection

未关闭
#2,002 0 条评论 0 个 reaction 已指派 1 人 已被 @fengmk2 认领 在 GitHub 查看
bug
主要语言
Rust
星标
5.8k
派生
262
平均合并
1 天 34 分钟
30 天内合并 PR
135

描述

`detectVitePlusBootstrapPending` assumes npm `overrides` values are strings, but npm supports nested override objects. A valid package.json such as this can throw during migration because the bootstrap detection calls string methods like `.startsWith()` on the override value:

```json
{
"overrides": {
"vite": {
"rollup": "..."
}
}
}
```

Expected behavior:

- Migration should not crash when `overrides.vite` or `overrides.vitest` is a nested object.
- Non-string override values should be treated as not satisfying the Vite+ override and then handled safely by the migration rewrite logic.
- Add a regression test covering a nested npm override under a managed key.

Suggested test:

Create an npm fixture with nested overrides:

```json
{
"devDependencies": {
"vite-plus": "0.1.x"
},
"overrides": {
"vite": {
"rollup": "^4.0.0"
}
}
}
```

Run:

```bash
vp migrate --no-interactive
```

Assert that migration completes or reports an actionable migration error, but does not throw a TypeError from bootstrap detection.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。