Skip to content

Commit b8baa2d

Browse files
committed
feat(cli): use version range instead of latest for vite-plus dependencies
vp create and vp migrate wrote the latest dist-tag for vite-plus and the vite/vitest aliases, which made vp update vite-plus unreliable because dist-tag specs are not re-resolved consistently by package managers. Derive a caret range from the CLI's own version (cli/core/test are published in lockstep) for the vite-plus, vite-plus-core, and vite-plus-test specs. vp migrate also normalizes a legacy "vite-plus": "latest" devDependency to the range while leaving deliberate user pins untouched. The snap runner normalizes the new specs to ^<semver> so snapshots stay stable across releases. With real ranges npm also records the vite/vitest alias overrides in the lockfile; the previously failing verification step in the migration-standalone-npm snap test now passes.
1 parent 77d0e36 commit b8baa2d

75 files changed

Lines changed: 394 additions & 257 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/guide/upgrade.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,20 @@ Update the project dependency with the package manager commands in Vite+:
3636
vp update vite-plus
3737
```
3838

39-
You can also use `vp add vite-plus@latest` if you want to move the dependency explicitly to the latest version.
39+
Projects created or migrated by Vite+ declare `vite-plus` with a version range (for example `^0.1.24`), so `vp update vite-plus` picks up new releases within that range. To move beyond the range, update the range explicitly:
40+
41+
```bash
42+
vp update --latest vite-plus
43+
# or
44+
vp add vite-plus@latest
45+
```
4046

4147
### Updating Aliased Packages
4248

4349
Vite+ sets up npm aliases for its core packages during installation:
4450

45-
- `vite` is aliased to `npm:@voidzero-dev/vite-plus-core@latest`
46-
- `vitest` is aliased to `npm:@voidzero-dev/vite-plus-test@latest`
51+
- `vite` is aliased to `npm:@voidzero-dev/vite-plus-core@^x.y.z`
52+
- `vitest` is aliased to `npm:@voidzero-dev/vite-plus-test@^x.y.z`
4753

4854
`vp update vite-plus` does not re-resolve these aliases in the lockfile. To fully upgrade, update them separately:
4955

packages/cli/snap-tests-global/migration-add-git-hooks/snap.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626

2727
> cat pnpm-workspace.yaml # check pnpm-workspace.yaml has overrides and catalog
2828
catalog:
29-
vite: npm:@voidzero-dev/vite-plus-core@latest
30-
vitest: npm:@voidzero-dev/vite-plus-test@latest
31-
vite-plus: latest
29+
vite: npm:@voidzero-dev/vite-plus-core@^<semver>
30+
vitest: npm:@voidzero-dev/vite-plus-test@^<semver>
31+
vite-plus: ^<semver>
3232
overrides:
3333
vite: 'catalog:'
3434
vitest: 'catalog:'

packages/cli/snap-tests-global/migration-auto-create-vite-config/snap.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ export default defineConfig({
5656

5757
> cat pnpm-workspace.yaml # check pnpm-workspace.yaml has overrides and catalog
5858
catalog:
59-
vite: npm:@voidzero-dev/vite-plus-core@latest
60-
vitest: npm:@voidzero-dev/vite-plus-test@latest
61-
vite-plus: latest
59+
vite: npm:@voidzero-dev/vite-plus-core@^<semver>
60+
vitest: npm:@voidzero-dev/vite-plus-test@^<semver>
61+
vite-plus: ^<semver>
6262
overrides:
6363
vite: 'catalog:'
6464
vitest: 'catalog:'

packages/cli/snap-tests-global/migration-baseurl-tsconfig/snap.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ export default defineConfig({
5959

6060
> cat pnpm-workspace.yaml # check pnpm-workspace.yaml has overrides and catalog
6161
catalog:
62-
vite: npm:@voidzero-dev/vite-plus-core@latest
63-
vitest: npm:@voidzero-dev/vite-plus-test@latest
64-
vite-plus: latest
62+
vite: npm:@voidzero-dev/vite-plus-core@^<semver>
63+
vitest: npm:@voidzero-dev/vite-plus-test@^<semver>
64+
vite-plus: ^<semver>
6565
overrides:
6666
vite: 'catalog:'
6767
vitest: 'catalog:'

packages/cli/snap-tests-global/migration-chained-lint-staged-pre-commit/snap.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626

2727
> cat pnpm-workspace.yaml # check pnpm-workspace.yaml has overrides and catalog
2828
catalog:
29-
vite: npm:@voidzero-dev/vite-plus-core@latest
30-
vitest: npm:@voidzero-dev/vite-plus-test@latest
31-
vite-plus: latest
29+
vite: npm:@voidzero-dev/vite-plus-core@^<semver>
30+
vitest: npm:@voidzero-dev/vite-plus-test@^<semver>
31+
vite-plus: ^<semver>
3232
overrides:
3333
vite: 'catalog:'
3434
vitest: 'catalog:'

packages/cli/snap-tests-global/migration-composed-husky-custom-dir/snap.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626

2727
> cat pnpm-workspace.yaml # check pnpm-workspace.yaml has overrides and catalog
2828
catalog:
29-
vite: npm:@voidzero-dev/vite-plus-core@latest
30-
vitest: npm:@voidzero-dev/vite-plus-test@latest
31-
vite-plus: latest
29+
vite: npm:@voidzero-dev/vite-plus-core@^<semver>
30+
vitest: npm:@voidzero-dev/vite-plus-test@^<semver>
31+
vite-plus: ^<semver>
3232
overrides:
3333
vite: 'catalog:'
3434
vitest: 'catalog:'

packages/cli/snap-tests-global/migration-composed-husky-prepare/snap.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626

2727
> cat pnpm-workspace.yaml # check pnpm-workspace.yaml has overrides and catalog
2828
catalog:
29-
vite: npm:@voidzero-dev/vite-plus-core@latest
30-
vitest: npm:@voidzero-dev/vite-plus-test@latest
31-
vite-plus: latest
29+
vite: npm:@voidzero-dev/vite-plus-core@^<semver>
30+
vitest: npm:@voidzero-dev/vite-plus-test@^<semver>
31+
vite-plus: ^<semver>
3232
overrides:
3333
vite: 'catalog:'
3434
vitest: 'catalog:'

packages/cli/snap-tests-global/migration-env-prefix-lint-staged/snap.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626

2727
> cat pnpm-workspace.yaml # check pnpm-workspace.yaml has overrides and catalog
2828
catalog:
29-
vite: npm:@voidzero-dev/vite-plus-core@latest
30-
vitest: npm:@voidzero-dev/vite-plus-test@latest
31-
vite-plus: latest
29+
vite: npm:@voidzero-dev/vite-plus-core@^<semver>
30+
vitest: npm:@voidzero-dev/vite-plus-test@^<semver>
31+
vite-plus: ^<semver>
3232
overrides:
3333
vite: 'catalog:'
3434
vitest: 'catalog:'

packages/cli/snap-tests-global/migration-eslint-lint-staged/snap.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626

2727
> cat pnpm-workspace.yaml # check pnpm-workspace.yaml has overrides and catalog
2828
catalog:
29-
vite: npm:@voidzero-dev/vite-plus-core@latest
30-
vitest: npm:@voidzero-dev/vite-plus-test@latest
31-
vite-plus: latest
29+
vite: npm:@voidzero-dev/vite-plus-core@^<semver>
30+
vitest: npm:@voidzero-dev/vite-plus-test@^<semver>
31+
vite-plus: ^<semver>
3232
overrides:
3333
vite: 'catalog:'
3434
vitest: 'catalog:'

packages/cli/snap-tests-global/migration-eslint-lintstagedrc/snap.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626

2727
> cat pnpm-workspace.yaml # check pnpm-workspace.yaml has overrides and catalog
2828
catalog:
29-
vite: npm:@voidzero-dev/vite-plus-core@latest
30-
vitest: npm:@voidzero-dev/vite-plus-test@latest
31-
vite-plus: latest
29+
vite: npm:@voidzero-dev/vite-plus-core@^<semver>
30+
vitest: npm:@voidzero-dev/vite-plus-test@^<semver>
31+
vite-plus: ^<semver>
3232
overrides:
3333
vite: 'catalog:'
3434
vitest: 'catalog:'

0 commit comments

Comments
 (0)