1.1.0 • Published 4 years ago
@machinat/per-env v1.1.0
per-env
Clean up your
package.jsonwith per-NODE_ENVnpm scripts.
Features
- Defaults NODE_ENVtodevelopment.
- Customize process.envper-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-envLicense
MIT License 2016 © Eric Clemmons
1.1.0
4 years ago