Node
Node dans ce dépôt est restreint mais crucial : le hook git markdownlint exécute
npx --no-install markdownlint-cli2, en résolvant la devDependency markdownlint-cli2
épinglée dans package.json / package-lock.json. Si le mauvais node est
sur PATH, ce hook casse et bloque les commits.
Le piège du shell non-interactif WSL (celui qui pique)
Un shell de connexion charge votre profil, qui charge le gestionnaire de versions (nvm) et
met le node du dépôt sur PATH. Un shell non-interactif — un script, un
tâche en arrière-plan, un hook git lancé par un agent sans tête — ne charge pas ce
profil, donc npx/node peut résoudre l'installation de node Windows atteinte via
l'interop WSL au lieu de l'installation Linux. markdownlint (et tout hook basé sur node)
fonctionne alors sous le mauvais node, ou échoue carrément, uniquement à partir de
scripts et de tâches en arrière-plan — jamais quand vous commitez à la main dans votre
terminal.
Solution : mettez le node du dépôt sur PATH avant de commiter ou pousser depuis un script ou une
tâche en arrière-plan. La recette exacte se trouve dans
references/wsl-node-path.md.
Hygiène npm
npm ci(pasnpm install) pour une installation reproductible depuispackage-lock.json; commitez le fichier de verrouillage avec toute modification de dépendance.npx --no-install <outil>exécute la devDependency locale épinglée et refuse de récupérer silencieusement une version différente du réseau — conservez le--no-install.- Gardez l'empreinte node minimale : ce dépôt livre une devDependency intentionnellement. Ajouter une dépendance est un changement soumis à confirmation, pas un réflexe.