Ensure --watch mode exits correctly when stdin is closed. #3493
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains:
Are tests included?
Breaking Changes?
List any relevant issue numbers:
Description
This PR ensures that the
rollup --watch
process exits correctly when stdin is closed by the parent process.This is necessary when rollup is used as the front end for an Elixir Phoenix application. In dev mode, the phoenix watchers run the rollup command as a child process and the underlying erlang port mechanism assumes that the child process closes when the parent stdin is closed. Without this fix the old zombie processes never close and accumulate as you stop and start in development mode.
This was discussed and fixed in 2017 in the original rollup-watcher repository:
rollup --watch
rollup-watch#30 (comment)It appears to then have been removed as a side effect of another change
Finally, was requested back in a PR that never got merged because of some doubt around the need to hide it behind a CLI flag
For reference, webpack implements this hidden behind the --watch-stdin CLI flag.