Home

Awesome

Node Generator Build Status Gitter OpenCollective

generator-node creates a base template to start a new Node.js module.

It is also easily composed into your own generators so you can only target your efforts at your generator's specific features.

Install

$ npm install --global generator-node

Usage

$ yo node

Note that this template will generate files in the current directory, so be sure to change to a new directory first if you don't want to overwrite existing files.

That'll generate a project with all the common tools setup. This includes:

Running tests

Once the project is scaffolded, inside the project folder run:

$ npm test

You can also directly use jest to run test on single files:

$ npm -g install jest-cli
$ jest --watch

Publishing your code

Once your tests are passing (ideally with a Travis CI green run), you might be ready to publish your code to npm. We recommend you using npm version to tag release correctly.

$ npm version major
$ git push --follow-tags
# ATTENTION: There is no turning back here.
$ npm publish

Extend this generator

First of all, make sure you're comfortable with Yeoman composability feature. Then in your own generator:

var Generator = require('yeoman-generator');

module.exports = class extends Generator({
  default() {
    this.composeWith(require.resolve('generator-node/generators/app'), {
      /* provide the options you want */
    });
  }
});

Options

Here's a list of our supported options:

Sub generators

If you don't need all the features provided by the main generator, you can still use a limited set of features by composing with our sub generators directly.

Remember you can see the options of each sub generators by running yo node:sub --help.

Backers

Love Yeoman work and community? Help us keep it alive by donating funds to cover project expenses! <br /> [Become a backer]

<a href="https://opencollective.com/yeoman/backers/0/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/0/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/1/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/1/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/2/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/2/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/3/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/3/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/4/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/4/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/5/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/5/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/6/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/6/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/7/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/7/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/8/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/8/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/9/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/9/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/10/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/10/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/11/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/11/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/12/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/12/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/13/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/13/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/14/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/14/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/15/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/15/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/16/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/16/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/17/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/17/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/18/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/18/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/19/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/19/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/20/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/20/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/21/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/21/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/22/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/22/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/23/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/23/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/24/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/24/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/25/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/25/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/26/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/26/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/27/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/27/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/28/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/28/avatar"> </a> <a href="https://opencollective.com/yeoman/backers/29/website" target="_blank"> <img src="https://opencollective.com/yeoman/backers/29/avatar"> </a>

License

MIT © Yeoman team (http://yeoman.io)