koa2-kickstarter
koa2-kickstarter copied to clipboard
An opinionated boilerplate for koa v2 with batteries included
trafficstars
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 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:*
License
MIT - Umayr Shahid <[email protected]>