npm-boilerplater
Version:
Boilerplate for coding, linting, testing, debugging and publishing npm module
84 lines (67 loc) • 4.2 kB
Markdown
# npm-boilerplater
 [](https://travis-ci.org/we-code-now/npm-boilerplater) [](https://www.codacy.com/app/StevenTea/npm-boilerplater?utm_source=github.com&utm_medium=referral&utm_content=we-code-now/npm-boilerplater&utm_campaign=Badge_Grade) [](https://www.codacy.com/app/StevenTea/npm-boilerplater?utm_source=github.com&utm_medium=referral&utm_content=we-code-now/npm-boilerplater&utm_campaign=Badge_Coverage)  
Create your next ES6 module in a wink!
## Table of Contents
- [Features](#features)
- [Quick start](#quick-start)
- [Self-explanatory structure](#self-explanatory-structure)
- [Commands](#commands)
- [License](#license)
## Features
- **Code** - [Babel](https://babeljs.io/) will transpile your ES6 code into ES5 for backwards compatiblity.
- **Linter** - [Eslint](https://eslint.org/) and [AirBnB config](https://www.npmjs.com/package/eslint-config-airbnb).
- **Formatter** - [EditorConfig](https://editorconfig.org/) and [Prettier](https://prettier.io/) with [Eslint-compatible](https://github.com/prettier/prettier-eslint-cli).
- **Test** - [Jest](https://jestjs.io/) is a great Javascript testing framework with built-in assertion library, mocking, code coverage and more. Debug in Visual Studio Code is great!
- **CI** - [TravisCI](https://travis-ci.org/) will help you to test and deploy your project automatically.
- **Analysis** - [Codacy](https://www.codacy.com/) can analyze your code automatically and you can send code coverage metrics to it.
- **Git-hooks** - [husky](https://github.com/typicode/husky) and [lint-staged](https://github.com/okonet/lint-staged) can work together to lint files to avoid bad commit.
- **Useful commands** - Run npm essential tasks can't be easier.
- **Highly customizable** - Easily to customize to fit your need.
## Quick start
- Clone this repo, then remove `.git` directory.
```shell
$ git clone https://github.com/we-code-now/npm-boilerplater.git your-project-name
$ cd your-project-name
$ rm -rf .git
$ git init
```
- Customize, if needed. See next section, please!
## Self-explanatory structure
```text
.
├── LICENSE
├── README.md
├── package.json
├── .gitignore
├── .npmignore
├── .editorconfig # EditorConfig config
├── .eslintrc.js # Eslint config
├── .eslintignore
├── .codacy.yml # Codacy config
├── .travis.yml # TravisCI config
├── jest.config.js # Jest config
├── babel.config.js # Babel config
├── prettier.config.js # Prettier config
├── node_modules/
├── coverage/ # code coverage report in here
├── lib/ # build destination
│ └── index.js # production code
├── src/ # development code
│ ├── index.js # source
│ └── index.spec.js # test
└── .vscode/ # Visual Studio Code config
├── launch.json # Debugging with Jest
└── settings.json # Eslint/Prettier extensions config
```
## Commands
- `npm run lint` - Lint code and markdown
- `npm run format` - Format code and markdown
- `npm run test` - Run test
- `npm run test:watch` - Run test in watch mode
- `npm run cover` - Run test with code coverage report
- `npm run cover:codacy` - Run test with code coverage report and send metrics to Codacy. Read [setup guide](https://support.codacy.com/hc/en-us/articles/207279819-Coverage).
- `npm run build` - Transpile ES6 code into ES5 from `src/` into `lib/`
- `npm run clean` - Remove `lib/` and `coverage/`
- `npm publish` - Publish package to [npm](https://www.npmjs.com/)
## License
MIT