Describe the bug
When running vp run dev from two separate repositories that require the same managed Node.js version, Vite+ downloads the same Node.js runtime independently for each process instead of coordinating the installation and reusing the shared runtime.
The two repositories are unrelated (API and web), but both resolve to the same Vite+ managed runtime location under the user-level Vite+ directory.
This suggests that the runtime itself is intentionally shared globally, but concurrent vp processes may both observe the runtime as missing and start their own download/install operation.
Expected behavior
If multiple vp processes require the same Node.js version concurrently, only one process should download/install the runtime. Other processes should wait for the installation to complete and then reuse the same runtime.
Conceptually:
API vp run dev ──┐
├── shared runtime lock ──> download Node 24.21.0 once
Web vp run dev ──┘ └─> both reuse it
Actual behavior
Both projects trigger a Node.js download even though they resolve to the same shared managed runtime.
Environment
OS: Windows 11
Node runtime reported by Vite+:
VITE+ - The Unified Toolchain for the Web
Environment:
Version 24.21.0
Source lts
Tool Paths:
node C:\Users\<username>\.vite-plus\js_runtime\node\24.21.0\node.exe
npm C:\Users\<username>\.vite-plus\js_runtime\node\24.21.0\npm.cmd
npx C:\Users\<username>\.vite-plus\js_runtime\node\24.21.0\npx.cmd
Why this seems like a Vite+ issue
The managed Node runtime is stored in a user-level shared location rather than inside either repository. Therefore, downloading the same runtime independently for concurrent projects appears unnecessary and can waste bandwidth and startup time.
A related issue, #2449, shows that vp run provisions managed Node.js runtimes, but that issue concerns interrupted downloads rather than concurrent deduplication:
#2449
Suggested solution
Add cross-process synchronization around managed Node.js runtime installation, keyed by runtime/platform/version. For example, a filesystem lock around the shared runtime directory could allow one process to perform the download while other processes wait and then reuse the installed runtime.
Validations
Describe the bug
When running
vp run devfrom two separate repositories that require the same managed Node.js version, Vite+ downloads the same Node.js runtime independently for each process instead of coordinating the installation and reusing the shared runtime.The two repositories are unrelated (API and web), but both resolve to the same Vite+ managed runtime location under the user-level Vite+ directory.
This suggests that the runtime itself is intentionally shared globally, but concurrent
vpprocesses may both observe the runtime as missing and start their own download/install operation.Expected behavior
If multiple
vpprocesses require the same Node.js version concurrently, only one process should download/install the runtime. Other processes should wait for the installation to complete and then reuse the same runtime.Conceptually:
Actual behavior
Both projects trigger a Node.js download even though they resolve to the same shared managed runtime.
Environment
OS: Windows 11
Node runtime reported by Vite+:
Why this seems like a Vite+ issue
The managed Node runtime is stored in a user-level shared location rather than inside either repository. Therefore, downloading the same runtime independently for concurrent projects appears unnecessary and can waste bandwidth and startup time.
A related issue, #2449, shows that
vp runprovisions managed Node.js runtimes, but that issue concerns interrupted downloads rather than concurrent deduplication:#2449
Suggested solution
Add cross-process synchronization around managed Node.js runtime installation, keyed by runtime/platform/version. For example, a filesystem lock around the shared runtime directory could allow one process to perform the download while other processes wait and then reuse the installed runtime.
Validations