Node
El Node en este repositorio es específico pero esencial: el hook de git para markdownlint ejecuta
npx --no-install markdownlint-cli2, resolviendo la dependencia de desarrollo markdownlint-cli2
fijada en package.json / package-lock.json. Si el node incorrecto está en PATH, ese hook falla y bloquea los commits.
La trampa de la shell no interactiva de WSL (la que pica)
Una shell de inicio de sesión carga tu perfil, que carga el gestor de versiones (nvm) y
pone el node del repositorio en PATH. Una shell no interactiva (un script, un
trabajo en segundo plano, un hook de git lanzado por un agente sin cabeza) no carga
ese perfil, por lo que npx/node pueden resolver a una instalación de node de Windows alcanzada
a través de la interoperabilidad de WSL en lugar del node de Linux. markdownlint (y cualquier hook basado en node) entonces
se ejecuta bajo el node incorrecto, o falla por completo, solo desde scripts y trabajos
en segundo plano, nunca cuando haces commit manualmente en tu terminal.
Solución: coloca el node del repositorio en PATH antes de hacer commit o push desde un script o
trabajo en segundo plano. La receta exacta está en
references/wsl-node-path.md.
Higiene de npm
npm ci(nonpm install) para una instalación reproducible desdepackage-lock.json; haz commit del archivo lock con cualquier cambio de dependencia.npx --no-install <tool>ejecuta la dependencia de desarrollo local fijada y se niega a obtener silenciosamente una versión diferente de la red: mantén--no-install.- Mantén la huella de node mínima: este repositorio incluye intencionadamente una dependencia de desarrollo. Añadir una dependencia es un cambio sujeto a confirmación, no un reflejo.