An opinionated boilerplate for koa v2 with batteries included.
# 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
├── 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.
- 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.
npm start
- simply starts the servernpm test
- execute all unit testsnpm run lint
- lints all the files insrc/
foldernpm run lint:fix
- fixes all the possible linting errorsnpm run watch
- starts the server with hot-reloading
Suggestion: To turn on debug messages, set DEBUG
environment variable to kickstarter:*
MIT - Umayr Shahid <[email protected]>