fix(cli): prevent download progress from overwriting terminal output - #2741
Conversation
CLI artifact sizes (
|
| Artifact | Format | Base | PR | Change |
|---|---|---|---|---|
packages/cli/dist |
Directory total | 2.15 MiB | 2.15 MiB | 0 B (0.00%) |
packages/core/dist |
Directory total | 3.95 MiB | 3.95 MiB | 0 B (0.00%) |
| Combined package dist | Directory total | 6.09 MiB | 6.09 MiB | 0 B (0.00%) |
vp (Linux x64) |
Binary | 11.23 MiB | 11.24 MiB | +12.00 KiB (+0.10%) |
vp (Linux x64) |
gzip -9 | 4.86 MiB | 4.86 MiB | +3.99 KiB (+0.08%) |
| NAPI (Linux x64) | Binary | 32.03 MiB | 32.04 MiB | +12.00 KiB (+0.04%) |
| NAPI (Linux x64) | gzip -9 | 12.70 MiB | 12.70 MiB | +4.71 KiB (+0.04%) |
vp (macOS ARM64) |
Binary | 8.38 MiB | 8.38 MiB | 0 B (0.00%) |
vp (macOS ARM64) |
gzip -9 | 4.24 MiB | 4.24 MiB | +5.57 KiB (+0.13%) |
| NAPI (macOS ARM64) | Binary | 39.66 MiB | 39.66 MiB | 0 B (0.00%) |
| NAPI (macOS ARM64) | gzip -9 | 17.01 MiB | 17.02 MiB | +7.11 KiB (+0.04%) |
vp (Windows x64) |
Binary | 9.11 MiB | 9.12 MiB | +15.50 KiB (+0.17%) |
vp (Windows x64) |
gzip -9 | 3.97 MiB | 3.99 MiB | +14.25 KiB (+0.35%) |
| NAPI (Windows x64) | Binary | 27.00 MiB | 27.01 MiB | +12.00 KiB (+0.04%) |
| NAPI (Windows x64) | gzip -9 | 10.81 MiB | 10.81 MiB | +6.05 KiB (+0.05%) |
| Trampoline (Windows x64) | Binary | 13.50 KiB | 13.50 KiB | 0 B (0.00%) |
| Trampoline (Windows x64) | gzip -9 | 7.03 KiB | 7.03 KiB | -1 B (-0.01%) |
| Installer (Windows x64) | Binary | 4.54 MiB | 4.55 MiB | +9.00 KiB (+0.19%) |
| Installer (Windows x64) | gzip -9 | 2.12 MiB | 2.13 MiB | +4.90 KiB (+0.23%) |
a22afb6 to
7c51cc1
Compare
Registry bridge build (
|
| Package | Version |
|---|---|
vite-plus |
0.0.0-commit.03fe831cd59553f5c606a16ed5826a702898a267 |
@voidzero-dev/vite-plus-core |
0.0.0-commit.03fe831cd59553f5c606a16ed5826a702898a267 |
Install the Vite+ CLI built from this commit, then migrate a project:
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/voidzero-dev/vite-plus/03fe831cd59553f5c606a16ed5826a702898a267/packages/cli/install.sh | VP_PR_VERSION=2741 VP_LEGACY_INSTALLER_URL=https://raw.githubusercontent.com/voidzero-dev/vite-plus/03fe831cd59553f5c606a16ed5826a702898a267/packages/cli/install-legacy.sh bash# Windows (PowerShell)
$env:VP_PR_VERSION="2741"; $env:VP_LEGACY_INSTALLER_URL="https://raw.githubusercontent.com/voidzero-dev/vite-plus/03fe831cd59553f5c606a16ed5826a702898a267/packages/cli/install-legacy.ps1"; irm https://raw.githubusercontent.com/voidzero-dev/vite-plus/03fe831cd59553f5c606a16ed5826a702898a267/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.03fe831cd59553f5c606a16ed5826a702898a267" --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.03fe831cd59553f5c606a16ed5826a702898a267",
"vite": "npm:@voidzero-dev/vite-plus-core@0.0.0-commit.03fe831cd59553f5c606a16ed5826a702898a267"
}
}
🐳 Docker preview imageBuilt from this PR's registry bridge build:
# remove any stale local copy from a previous run, then pull fresh
docker rmi ghcr.io/voidzero-dev/vite-plus:pr-2741 2>/dev/null; docker pull ghcr.io/voidzero-dev/vite-plus:pr-2741Quick check: docker run --rm ghcr.io/voidzero-dev/vite-plus:pr-2741 vp --versionSee docs/guide/docker.md for usage. |
03fe831 to
e64c347
Compare
e64c347 to
6224e9f
Compare
Node.js and package-manager downloads can erase earlier terminal output when the progress display moves the cursor upward.
Both downloaders now fit the entire progress display to one terminal row. When space is limited, the display uses compact statistics and shortens the download name as needed. The layout uses the current terminal width on each redraw and clears the row when the download ends.
Narrow terminal fix
The video compares
7c51cc1with6bfe6c4at 40, 60, 80, and 138 columns. It shows downloads with and without a known total size.vp-download-progress-widths-before-after.mp4
Original terminal output fix
This video compares the reported recording with the first fix in
7c51cc1.vp-download-progress-before-after.mp4