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:
{
"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:
{
"devDependencies": {
"vite-plus": "0.1.x"
},
"overrides": {
"vite": {
"rollup": "^4.0.0"
}
}
}
Run:
vp migrate --no-interactive
Assert that migration completes or reports an actionable migration error, but does not throw a TypeError from bootstrap detection.
detectVitePlusBootstrapPendingassumes npmoverridesvalues 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:{ "overrides": { "vite": { "rollup": "..." } } }Expected behavior:
overrides.viteoroverrides.vitestis a nested object.Suggested test:
Create an npm fixture with nested overrides:
{ "devDependencies": { "vite-plus": "0.1.x" }, "overrides": { "vite": { "rollup": "^4.0.0" } } }Run:
Assert that migration completes or reports an actionable migration error, but does not throw a TypeError from bootstrap detection.