fix(implode): clean long paths on Windows - #2510
Conversation
✅ Deploy Preview for viteplus-preview canceled.
|
Native binary sizes (
|
| Artifact | Format | Base | PR | Change |
|---|---|---|---|---|
vp (Linux x64) |
Binary | 10.69 MiB | 10.69 MiB | 0 B (0.00%) |
vp (Linux x64) |
gzip -9 | 4.63 MiB | 4.63 MiB | +4 B (+0.00%) |
| NAPI (Linux x64) | Binary | 32.19 MiB | 32.19 MiB | 0 B (0.00%) |
| NAPI (Linux x64) | gzip -9 | 12.69 MiB | 12.69 MiB | 0 B (0.00%) |
vp (macOS ARM64) |
Binary | 7.98 MiB | 7.98 MiB | 0 B (0.00%) |
vp (macOS ARM64) |
gzip -9 | 4.04 MiB | 4.04 MiB | +9 B (+0.00%) |
| NAPI (macOS ARM64) | Binary | 39.79 MiB | 39.79 MiB | 0 B (0.00%) |
| NAPI (macOS ARM64) | gzip -9 | 16.98 MiB | 16.98 MiB | 0 B (0.00%) |
vp (Windows x64) |
Binary | 8.58 MiB | 8.59 MiB | +5.50 KiB (+0.06%) |
vp (Windows x64) |
gzip -9 | 3.74 MiB | 3.75 MiB | +4.06 KiB (+0.11%) |
| NAPI (Windows x64) | Binary | 27.03 MiB | 27.03 MiB | 0 B (0.00%) |
| NAPI (Windows x64) | gzip -9 | 10.75 MiB | 10.75 MiB | +3 B (+0.00%) |
| Trampoline (Windows x64) | Binary | 216.50 KiB | 216.50 KiB | 0 B (0.00%) |
| Trampoline (Windows x64) | gzip -9 | 104.34 KiB | 104.34 KiB | 0 B (0.00%) |
| Installer (Windows x64) | Binary | 4.48 MiB | 4.48 MiB | 0 B (0.00%) |
| Installer (Windows x64) | gzip -9 | 2.10 MiB | 2.10 MiB | -1 B (-0.00%) |
Registry bridge build (
|
| Package | Version |
|---|---|
vite-plus |
0.0.0-commit.b3de9bd37039847cb262ea7bc99a4bf3bdf8ef45 |
@voidzero-dev/vite-plus-core |
0.0.0-commit.b3de9bd37039847cb262ea7bc99a4bf3bdf8ef45 |
Install the Vite+ CLI built from this commit, then migrate a project:
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/voidzero-dev/vite-plus/b3de9bd37039847cb262ea7bc99a4bf3bdf8ef45/packages/cli/install.sh | VP_PR_VERSION=2510 bash# Windows (PowerShell)
$env:VP_PR_VERSION="2510"; irm https://raw.githubusercontent.com/voidzero-dev/vite-plus/b3de9bd37039847cb262ea7bc99a4bf3bdf8ef45/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.b3de9bd37039847cb262ea7bc99a4bf3bdf8ef45" --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.b3de9bd37039847cb262ea7bc99a4bf3bdf8ef45",
"vite": "npm:@voidzero-dev/vite-plus-core@0.0.0-commit.b3de9bd37039847cb262ea7bc99a4bf3bdf8ef45"
}
}
🐳 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-2510 2>/dev/null; docker pull ghcr.io/voidzero-dev/vite-plus:pr-2510Quick check: docker run --rm ghcr.io/voidzero-dev/vite-plus:pr-2510 vp --versionSee docs/guide/docker.md for usage. |
860f78e to
e221000
Compare
e221000 to
8ed9517
Compare
This change fixes #2502.
On Windows,
vp implodenow starts a native cleanup helper from a temporary executable. The helper waits for the original process. It removes only the renamed Vite+ root. It retries the operation when Windows locks a file. It writes an error log if it cannot remove the root.PowerShell now removes only the temporary helper executable. It does not traverse the Vite+ data tree.
Rust tests cover long paths, locked files, junctions, and an immediate reinstall. The Windows standalone install workflow tests monolithic and split layouts.