Skip to content

Latest commit

 

History

History
64 lines (53 loc) · 2.66 KB

README.md

File metadata and controls

64 lines (53 loc) · 2.66 KB

koa2-kickstarter

An opinionated boilerplate for koa v2 with batteries included.

Setup

  # clone the repository
  λ git clone https://github.com/umayr/koa2-kickstarter
  # change the current directory
  λ cd koa2-kickstarter
  # install all dependencies
  λ npm install
  # run the project
  λ npm start

or execute the script

  λ curl -sSL https://git.io/v5yGw | bash
  # with a project name
  λ curl -sSL https://git.io/v5yGw | bash -s new-app

Structure

├── README.md           # you're here
├── bin                 # folder that bootstraps the application
├── src                 # contains source files
│   ├── conf            # wraps configurations files
│   ├── controller      # contains all controllers in the application
│   ├── middleware      # folder with all middlewares
│   ├── route           # wraps all the routes and exports a single composed middleware
│   └── service         # contains all the service logic
└── test                # unit tests

Suggestion: Every folder name is singular like route, middleware instead of routes, middlewares. If you want to add more folders as per your need, make sure they should be singular too (for e.g. util, helper etc) only for the sake of consistency.

Included

  • Koa Well, duh.
  • Koa Router For routing and all.
  • Debug Debug messages in the development environment.
  • Bunyan Extensive logging module.
  • Ava For unit tests.
  • Boom HTTP Errors.
  • Convict Configuration management.
  • Babel Support ES6/ES7 features.
  • ESLint Linting purposes (comes with extended Airbnb's base eslint configurations).
  • Nodemon Restart the server automatically (hot-reloading).

And many more small packages.

Scripts

  • npm start - simply starts the server
  • npm test - execute all unit tests
  • npm run lint - lints all the files in src/ folder
  • npm run lint:fix - fixes all the possible linting errors
  • npm run watch - starts the server with hot-reloading

Suggestion: To turn on debug messages, set DEBUG environment variable to kickstarter:*

License

MIT - Umayr Shahid <[email protected]>