--watch-path restarts on unrelated directory touch when --env-file is set
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- JavaScript
- Estrellas
- 122k
- Forks
- 37.4k
- Merge medio
- 4 d 3 h
- PR fusionados (30 d)
- 272
Descripción
Version
- Node.js: v24.13.0
- OS: macOS
Reproduction
Setup:
mkdir -p /tmp/node-watch-envfile-repro/watched /tmp/node-watch-envfile-repro/unrelated
cd /tmp/node-watch-envfile-repro
echo "FOO=bar" > .env
echo "console.log('START', JSON.stringify({ pid: process.pid, ts: Date.now(), foo: process.env.FOO ?? null }));" > watched/server.js
echo "setInterval(() => {}, 1000);" >> watched/server.js
Run with --env-file and touch an unrelated path:
cd /tmp/node-watch-envfile-repro
node --watch-path=watched --env-file=.env watched/server.js > out-env.log 2>&1 &
PID=$!
sleep 2
touch unrelated
sleep 2
kill $PID
cat out-env.log
Observed output:
START {"pid":58939,"ts":1771621917212,"foo":"bar"}
Restarting 'watched/server.js'
START {"pid":58948,"ts":1771621919442,"foo":"bar"}
Now run without --env-file:
cd /tmp/node-watch-envfile-repro
node --watch-path=watched watched/server.js > out-no-env.log 2>&1 &
PID=$!
sleep 2
touch unrelated
sleep 2
kill $PID
cat out-no-env.log
Observed output:
START {"pid":59279,"ts":1771621950778,"foo":null}
Expected behavior
When --watch-path=watched is set, touching unrelated should not trigger a restart, regardless of whether --env-file is used.
Actual behavior
With --env-file=.env, touching unrelated triggers a restart.
Without --env-file, touching unrelated does not restart.
Notes
This was first noticed in a larger workspace where:
node --watch-path=apps/server/dist-dev --env-file=.env apps/server/dist-dev/server.js
restarts when running:
touch apps/client/dist/
The reduced test case above reproduces the same behavior.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza ejecutando la reproducción proporcionada en macOS con y sin --env-file, centrándote en el manejo de watch-path de Node.js y en la interacción con el punto de entrada --env-file. Rastrea dónde se seleccionan las rutas del sistema de archivos que se van a observar y añade o actualiza una prueba de regresión para que tocar algo no relacionado no reinicie el proceso; vuelve a ejecutar la reproducción y las pruebas relevantes de watch para confirmar el comportamiento.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, node.js
- Área
- cli, tooling
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 64/100