Create node modules writing ES6 today compiled with Babel, tested with ava and linted with standard on top of npm scripts Create node modules with es6, test with tape on top of npm scripts

Usage no npm install needed!

<script type="module">
  import generatorMnm from '';


Create node modules writing ES6/ES7 today compiled with Babel, tested with ava, bundled with rollup and linted with standard on top of npm scripts


$ npm install -g yo generator-mnm


  yo mnm:app [options] [<name>]

  -h,   --help          # Print the generator's options and usage
        --skip-cache    # Do not remember prompt answers             Default: false
        --skip-install  # Do not automatically install dependencies  Default: false
  -a,   --all           # Ask all questions                          Default: false
  -y,   --yes           # Skip some questions, like $ npm init -y    Default: false

  name  # module name
  If provided the module will be created inside ./<name>/
  otherwise it will be created in the current directory


     $ yo mnm
     $ yo mnm myAwesomeModule

    Type: String  Required: false


$ yo mnm -y
   create package.json
   create .gitignore
   create src/index.js
   create test/index.js
   create .travis.yml
   create .babelrc
   create rollup.config.js


  • Made out of many other generators, the main generator only creates a package.json file and a minimal .gitignore file
  • Composable, since the logic to create the README, cli and other files is on their own subgenerator
  • Babel transpiles the code/tests
  • standard to lint the code
  • ava for testing
  • yargs to parse cli arguments (optional)
  • rollup to create a common js compatible bundle
  • npm scripts as the build system



List of npm scripts included

Common tasks

task description
npm test ava
npm run build rollup --config
npm run lint standard
npm run clean Removes all the files inside dist/

Watching files

task description
npm run test:watch Same as npm test but with --watch
npm run build:watch Same as npm run build but with --watch

Pre/Post hooks

Task description
npm run prebuild Run before build, npm clean -s && npm lint -s
npm run preversion Run before version, npm run build

Useful npm commands that you should know

  • npm version major|minor|patch bumps the package version
  • npm run lists all available scripts


This project is heavily inspired by this article by Keith Cirkel where he describes that the existing build system tools attempt to solve the problems that exist among them "covering up the inadequacies of the other tools while also surfacing their own".

James Halliday who is the creator of many awesome packages like browserify and tape also wrote an article where he points out that the command npm run is "perfectly adequate for everything while maintaining a very tiny configuration footprint."

Articles to read:

Inspiration projects

I'd like to thank iamstarkov for his awesome work on generators that are actually composable


Just plug in any of the subgenerators or the app generator itself on your generator

Generators used in this project


# equivalent to npm init -y
yo mnm -y
# see
ghrepo -m "initial commit"
# see
travisjs hook # or travis enable with the travis gem

# if a cli is needed
yo mnm:cli


  • npm test
  • npm test:ci run the tests (open ./test/ci/.tmp to see a generated)


2015-2016 MIT © Mauricio Poppe