Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yeoman/generator-node
Create a Node.js module
https://github.com/yeoman/generator-node
Last synced: 3 months ago
JSON representation
Create a Node.js module
- Host: GitHub
- URL: https://github.com/yeoman/generator-node
- Owner: yeoman
- License: mit
- Created: 2013-05-15T15:15:10.000Z (almost 12 years ago)
- Default Branch: main
- Last Pushed: 2022-03-26T15:35:35.000Z (almost 3 years ago)
- Last Synced: 2024-10-31T20:06:44.398Z (4 months ago)
- Language: JavaScript
- Homepage: http://yeoman.io
- Size: 959 KB
- Stars: 577
- Watchers: 22
- Forks: 160
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-projects-boilerplates - Yeoman Node Generator
README
# Node Generator [![Build Status](https://secure.travis-ci.com/yeoman/generator-node.svg?branch=master)](https://travis-ci.com/yeoman/generator-node) [![Gitter](https://img.shields.io/badge/Gitter-Join_the_Yeoman_chat_%E2%86%92-00d06f.svg)](https://gitter.im/yeoman/yeoman) [![OpenCollective](https://opencollective.com/yeoman/backers/badge.svg)](https://opencollective.com/yeoman#support)
`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:
- Filled `package.json` file
- [jest](https://facebook.github.io/jest/) unit test and code coverage (optionally tracked on [Coveralls](https://coveralls.io/))
- [ESLint](http://eslint.org/) linting and code style checking
- [Travis CI](https://travis-ci.com/) continuous integration (optional)
- [License](https://spdx.org/licenses/)### 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](https://docs.npmjs.com/cli/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](http://yeoman.io/authoring/composability.html) feature. Then in your own generator:
```js
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:
- `boilerplate` (Boolean, default true) include or not the boilerplate files (`lib/index.js`, `test/index.js`).
- `cli` (Boolean, default false) include or not a `lib/cli.js` file.
- `editorconfig` (Boolean, default true) include or not a `.editorconfig` file.
- `git` (Boolean, default true) include or not the git files (`.gitattributes`, `.gitignore`).
- `license` (Boolean, default true) include or not a `LICENSE` file.
- `travis` (Boolean, default true) include or not a `.travis.yml` file.
- `githubAccount` (String) Account name for GitHub repo location.
- `readme` (String) content of the `README.md` file. Given this option, generator-node will still generate the title (with badges) and the license section.### 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`.
- `node:boilerplate`
- `node:cli`
- `node:editorconfig`
- `node:eslint`
- `node:git`
- `node:readme`## Backers
Love Yeoman work and community? Help us keep it alive by donating funds to cover project expenses!
[[Become a backer](https://opencollective.com/yeoman#support)]## License
MIT © Yeoman team (http://yeoman.io)