Node
Node ist in diesem Repository schmal, aber tragend: Der markdownlint Git-Hook führt
npx --no-install markdownlint-cli2 aus und löst die markdownlint-cli2
DevDependency auf, die in package.json / package-lock.json festgeschrieben ist. Wenn der falsche Node
auf dem PATH liegt, bricht dieser Hook und blockiert Commits.
Die WSL Non-Interactive-Shell-Falle (die, die beißt)
Eine Login-Shell führt Ihr Profil aus, das den Versionsmanager (nvm) lädt und den Node
des Repositorys auf den PATH setzt. Eine nicht-interaktive Shell – ein Skript, ein
Hintergrundjob, ein Git-Hook, der von einem kopflosen Agenten gestartet wird – führt dieses Profil
nicht aus, sodass npx/node auf eine Windows-Node-Installation auflösen können, die über die
WSL-Interop erreicht wird, anstatt auf die Linux-Installation. markdownlint (und jeder Node-basierte Hook) läuft dann
unter dem falschen Node oder schlägt ganz fehl, und das nur von Skripten und Hintergrundjobs
aus – nie, wenn Sie von Hand in Ihrem Terminal committen.
Behebung: Setzen Sie den Node des Repositorys auf den PATH, bevor Sie von einem Skript oder Hintergrundjob
committen oder pushen. Das genaue Rezept finden Sie in
references/wsl-node-path.md.
npm-Hygiene
npm ci(nichtnpm install) für eine reproduzierbare Installation auspackage-lock.json; committen Sie die Lockdatei mit jeder Abhängigkeitsänderung.npx --no-install <tool>führt die festgeschriebene lokale DevDependency aus und weigert sich, stillschweigend eine andere Version aus dem Netz zu holen – behalten Sie das--no-install.- Halten Sie den Node-Fußabdruck minimal: Dieses Repository enthält absichtlich eine DevDependency. Das Hinzufügen einer Abhängigkeit ist eine bestätigungsgeschützte Änderung, kein Reflex.