Conflict: dev-config installs nvm4w but TypeScript workload installs Node.js LTS directly

Offen
#55 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
48/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Ruhig
Tech-Stack
node.js, powershell, typescript

Rechercherichtung

Vergleiche dev-config.winget mit Workloads/typescript/configuration.winget und prüfe anschließend refresh-path.ps1, falls die PATH-Behandlung Teil des gewählten Ansatzes ist. Wende beide Konfigurationen unter Windows an und verifiziere, dass node --version und npm in einem neuen Terminal ohne konfligierende Node-Installationen verfügbar sind; die gewählte Koordinationsstrategie sollte explizit und reproduzierbar sein.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Summary

The main dev-config.winget installs NVM for Windows (CoreyButler.NVMforWindows), which manages Node.js versions via a symlink at C:\nvm4w\nodejs and adds that to PATH. However, the TypeScript workload (Workloads/typescript/configuration.winget) separately installs OpenJS.NodeJS.LTS directly via winget, which places Node at C:\Program Files\nodejs.

This creates a broken state where:

  1. PATH points to C:\nvm4w\nodejs (set by nvm4w)
  2. The nvm4w symlink targets a version directory (e.g. C:\Users\<user>\AppData\Local\nvm\v24.16.0) that does not exist because Node was installed via the MSI package, not through nvm install
  3. node and npm are not found on PATH despite Node.js being physically installed

Steps to Reproduce

  1. Apply the main windows-dev-config/dev-config.winget (installs nvm4w, adds C:\nvm4w\nodejs to PATH)
  2. Apply Workloads/typescript/configuration.winget (installs OpenJS.NodeJS.LTS to C:\Program Files\nodejs)
  3. Open a new terminal
  4. Run node --versioncommand not found

Root Cause

nvm4w owns the PATH entry (C:\nvm4w\nodejs) and expects Node to be installed via nvm install <version> + nvm use <version>. The direct winget install of OpenJS.NodeJS.LTS puts node elsewhere and nvm4w's symlink points to a non-existent directory.

Suggested Fix

Option A — TypeScript workload defers to nvm4w:
Replace the OpenJS.NodeJS.LTS winget package resource with a RunCommandOnSet that runs:

nvm install lts
nvm use lts

Option B — Remove nvm4w from dev-config, let workloads install Node directly:
Remove CoreyButler.NVMforWindows from dev-config.winget and ensure C:\Program Files\nodejs ends up on PATH (the Node MSI installer does this by default).

Option C — Keep both but coordinate PATH:
If both are intentional, the TypeScript workload should add C:\Program Files\nodejs to PATH explicitly, or the refresh-path.ps1 should detect and resolve the nvm4w symlink conflict.

Environment

  • Windows 11 (Build 2026)
  • winget v1.28.240
  • CoreyButler.NVMforWindows 1.2.2
  • OpenJS.NodeJS.22 24.16.0 (installed by winget as the LTS package)
Vorherrschende Sprache
PowerShell
Sterne
2.2k
Forks
168
Ø Merge
5 Std. 14 Min.
Gemergte PRs (30 T.)
5

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus microsoft/WindowsDeveloperConfig

Alle Issues in microsoft/WindowsDeveloperConfig

Ähnliche Issues

Weitere Issues zu DevTools

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.