Skip to content

ntilwalli/exit_on_eof

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

exit_on_eof

Helper script for Elixir/Phoenix projects using npm scripts as a watcher instead of Brunch

npm install -g exit_on_eof

Description

Elixir/Phoenix projects use Brunch by default for front-end workflows, but this can be modified to use a simpler approach like npm scripts as described here. A problem arises though when killing/exiting the server. Phoenix sends an EOF signal through stdin to the watch process to indicate it should terminate. npm scripts, like many commands, does not respond to EOF like SIGINT so the node processes remain running.

This script helps deal with this issue by wrapping a user-given command in a parent process that is sensitive to both SIGINT and EOF.

To read more about this sensitivity to EOF as per Chris McCord, view this

(Both Webpack and Brunch were actively PR'd to allow for this behavior. This is a stop-gap until a more elegant solution presents.)

###Usage

In Phoenix project update config/dev.exs:

config :{YOUR_PROJECT_NAME_ATOM}, {YOUR_PROJECT_NAME}.Endpoint
  ...
  watchers: [exit_on_eof: ["npm run watch"]]

In your package.json:

{
  ...
  "scripts": {
    ...
    "watch": some set of commands
    ...
  },
  ...
}

When you start the server your command should run and when you stop the server the node processes that were spun up to manage the front-end build will also be killed.

About

Helper script enabling Elixir/Phoenix projects to use `npm scripts` as a watcher instead of Brunch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published