per-env
Clean up your
package.json
with per-NODE_ENV
npm scripts.
Features
- Defaults
NODE_ENV
todevelopment
. - Customize
process.env
per-environment. - Clearer, concise scripts.
- No more Bash-scripting in
package.json
. - Simplify your workflow:
npm install
npm start
Example
// Processes spawned by `per-env` inherit environment-specific // variables, if defined. "per-env": "production": "DOCKER_USER": "my" "DOCKER_REPO": "project" "scripts": // If NODE_ENV is missing, defaults to "development". "build": "per-env" "build:development": "webpack -d --watch" "build:staging": "webpack -p" "build:production": "webpack -p" // Deployment won't work unless NODE_ENV=production is explicitly set. "deploy": "per-env" "predeploy:production": "docker build -t ${DOCKER_USER}/${DOCKER_PROJECT} ." "deploy:production": "docker push ${DOCKER_USER}/${DOCKER_PROJECT}" // "npm start" is _the_ command to start the server across all environments. "start": "per-env" "start:development": "npm run build:development" "prestart:production": "npm run build" "start:production": "start-cluster build/server/server.js" "prestart:staging": "npm run build" "start:staging": "start-cluster build/server/server.js" // Explicitly set NODE_ENV, which is helpful in CI. "test": "NODE_ENV=test per-env" "test:test": "mocha"
Installation
$ npm install --save per-env
License
MIT License 2016 © Eric Clemmons