Skip to content

Conversation

@0xradical
Copy link
Contributor

The presence of stdin doesn't necessarily mean there's an allocated tty. This breaks watch mode in non-TTY stdin contexts (e.g. docker, foreman, etc). A simple process.stdin.isTTY check would theoretically be enough but unfortunately, subprocesses don't have the same API, and they are used extensively for testing via calls to the function spawn.

A simple solution is to inject an env var dependency where we tell the process that it's indeed a TTY-allocated process and so, watch mode with exit handling is good to go.

A more robust but also annoying solution would involve using an actual terminal emulator (like Microsoft's node-pty). Though the environment gets exponentially more difficult to setup since it
involves compiling bindings, which require different requirements per OS.

Closes #424

The presence of stdin doesn't necessarily mean there's an allocated
tty. This breaks watch mode in non-TTY stdin contexts (e.g. docker,
foreman, etc). A simple process.stdin.isTTY check would theoretically
be enough but unfortunately, subprocesses don't have the same API,
which are used extensively to test via calls to `spawn`.

A simple solution is to inject an env var dependency where we tell
the process that it's indeed a TTY-allocated process and so, watch mode
with exit handling is good to go.
@RyanZim RyanZim merged commit 83771bd into postcss:master Nov 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants