feat(cli): expose dependency alignment plans - #2600
Conversation
✅ Deploy Preview for viteplus-preview ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Registry bridge build (
|
| Package | Version |
|---|---|
vite-plus |
0.0.0-commit.a70c54d67ca9b47dcfcb083ca135fd61c7d04740 |
@voidzero-dev/vite-plus-core |
0.0.0-commit.a70c54d67ca9b47dcfcb083ca135fd61c7d04740 |
Install the Vite+ CLI built from this commit, then migrate a project:
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/afonsojramos/vite-plus/a70c54d67ca9b47dcfcb083ca135fd61c7d04740/packages/cli/install.sh | VP_PR_VERSION=2600 bash# Windows (PowerShell)
$env:VP_PR_VERSION="2600"; irm https://raw.githubusercontent.com/afonsojramos/vite-plus/a70c54d67ca9b47dcfcb083ca135fd61c7d04740/packages/cli/install.ps1 | iexOr download the standalone Windows installer built from this commit:
| Architecture | Installer |
|---|---|
| x64 | vp-setup-x86_64-pc-windows-msvc.exe |
| Arm64 | vp-setup-aarch64-pc-windows-msvc.exe |
GitHub requires you to sign in and downloads each installer as a ZIP artifact. Extract vp-setup.exe, then run it against this preview build:
.\vp-setup.exe --version "0.0.0-commit.a70c54d67ca9b47dcfcb083ca135fd61c7d04740" --registry "https://registry-bridge.viteplus.dev/"After installing, upgrade the current project's vite-plus to this test build with:
vp migrateOr point your package manager at the bridge registry https://registry-bridge.viteplus.dev/:
| Package manager | Registry config |
|---|---|
| npm / pnpm / Bun | .npmrc: registry=https://registry-bridge.viteplus.dev/ |
| Yarn (v2+) | .yarnrc.yml: npmRegistryServer: "https://registry-bridge.viteplus.dev/" |
Then pin the build (vite aliases to vite-plus-core; pnpm can use a catalog, npm an overrides entry):
{
"devDependencies": {
"vite-plus": "0.0.0-commit.a70c54d67ca9b47dcfcb083ca135fd61c7d04740",
"vite": "npm:@voidzero-dev/vite-plus-core@0.0.0-commit.a70c54d67ca9b47dcfcb083ca135fd61c7d04740"
}
}|
@afonsojramos I installed the preview build version, and when I run
|
|
So, the command expects a JSON request on stdin, but silently waiting on an interactive terminal is definitely a bug. I’ll make it fail immediately, does that sound good @fengmk2? |
|
@afonsojramos Yes, I think it would be more appropriate to report an error in interactive mode. |
|
@fengmk2 should be good now 👌 |
There was a problem hiding this comment.
@afonsojramos Thanks so much!
I will perform manual testing and verification before merging.
|
Awesome, thanks! Feel free to check the other draft PRs to check the plan of joining it all together |
| } | ||
|
|
||
| function alignedSpec(name: string, current: string, toolchain: SyncVersionsToolchain): string { | ||
| const target = targetVersion(name, toolchain); |
There was a problem hiding this comment.
https://github.com/npmx-dev/npmx.dev/blob/main/pnpm-workspace.yaml#L32
Will the overrides configuration for this dependency alias 'vite': 'npm:@voidzero-dev/vite-plus-core@0.3.0' be automatically upgraded by us?
There was a problem hiding this comment.
Yes, it will now. I added support for managed npm: aliases, including this exact pnpm catalog entry. We also preserve the alias target and only replace its version. So custom aliases remain untouched.
| } | ||
|
|
||
| const basename = path.posix.basename(manifest.path); | ||
| const kindMatchesPath = |
There was a problem hiding this comment.
How about .yarnrc.yml file? I think we should support yarn 4.10+ catalogs in this file.
There was a problem hiding this comment.
Good call, added. sync-versions now handles both default and named Yarn catalogs in .yarnrc.yml, while preserving formatting and comments.

Summary
Vite+ releases can now tell external automation how to align Vite+, Vite+ core, Vitest, and official Vitest packages without reading or changing the project itself. This provides the release-owned compatibility contract needed to prevent dependency bots from producing mixed toolchains.
This is the first part of a three-repository integration. Containerbase installation and Renovate reconciliation follow after this contract ships in a Vite+ release.
Design
vp sync-versions --jsonaccepts bounded manifest snapshots over stdin and returns deterministic before/after replacements.Validation
git diff --checkpassed.Related: #2356
Downstream drafts: