node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »



Get started with modern JavaScript development as simple as the ABC


  • Next generation JavaScript language syntax
  • Unit tests with code coverage of your original code
  • Linting for consistent style
  • Continuous integration


This module only works with Node v6+ and npm v3+ (or yarn), which are the current LTS versions. Please make sure you are running the right versions via node -v && npm -v and update if needed.

# Install the module
npm install --save-dev abc-environment
# Run the setup
node_modules/.bin/abc setup
# Now you can commit...
git add ...
git commit ...
# ...and run commands directly
node_modules/.bin/abc test
npm test
# Tip: Create an alias for "abc" to have an even shorter command
echo "alias abc='node_modules/.bin/abc'" >> ~/.bashrc && source ~/.bashrc
abc test


abc setup

Creates the directories and files for the whole project to run. This will modify files, so only run it on empty or version-controlled projects.

⚠️ When updating this module to the next higher minor version number, it is recommended to run the setup command again to get the newest files! When updating to the next major number, running setup is required.

The created directories and files are:

  • src/ - Directory for your source code
  • src/index.js - Demo module file (if src/ is empty)
  • tests/ - Directory for your tests
  • tests/index.spec.js - Demo test file (if tests/ is empty)
  • .babelrc - Manages the Babel configuration throughout the whole project 1
  • .gitignore - Makes sure that you don't commit dependency files into version control
  • .npmignore - Makes sure that you only release the built files into npm
  • .travis.yml - Handles continuous integration with Travis
  • package.json - Adds three npm scripts:
    • npm test - Runs the test and lint commands
    • npm run build - Runs the build command
    • npm run version - Runs the build command when you publish a new version of your package to npm (e.g. using np or npm-release)

abc build

Compiles the source files from src/ into a build/ directory. Thanks to this, you can use the latest language features of JavaScript and compile them into JavaScript that runs in older browsers or older versions of Node. You can find an overview of all the new language features here and here.

abc test

Runs the test files in the tests/ directory. Using unit tests, you can check if your module always works in the way you expect it to. You can also see which parts of your code are covered by your tests by opening the generated coverage/lcov-report/index.html in your browser.

abc lint [--fix]

Checks if your code is consistent and follows best practices (and optionally fix issues). By using a linter you can ensure that all your code looks the same, even if it was written by different developers. Linting also helps to catch common errors. This module uses the standard style guide.

abc run src/file.js

Runs a specified file. Because we are using compiled code, it can get tedious if you have to run build before you can run your code. Using the run command, you can just specify the file and get it compiled and executed in one single step. This is used for development purposes, in production you should always use the compiled files generated using the build command!


  • Compiling
  • Testing
  • Linting
    • snazzy - One JavaScript Style Guide to Rule Them All
    • babel-eslint - Lint all valid Babel code, including stage-0
  • Continuous Integration (optional, but recommended)
    • Travis - Continuous integration service
    • codecov - Code coverage badges in your repository
    • GreenKeeper - Automatic PRs for npm dependencies
    • np - A better npm publish



[1]: Sadly this is required, because Mocha provides no way to configure Babel