@customcommander/project-blueprint
v1.12.0
Published
A template for managing the development lifecycle of a Node.js package
Downloads
21
Readme
Project Blueprint
A template for managing the development lifecycle of a Node.js package.
Why?
There are many things to think about and set up properly before you can start writing and publishing code. This template intends to give you enough of head start as starting from scratch always slows you down. If you don't know how or where to start or fear "analysis paralysis", this template could provide a handy escape hatch.
What's in the box?
This template is entirely based on my own (insignificant) opinions on how to achieve a steady, healthy and sustainable development lifecycle. Some of my decisions are documented in architecture decision records. After you generate a repository from this template you are free to make any changes you like but you'll be on your own.
A development environment 100% dockerized
The main development container provides: Node.js 14, GNU Make, Git, JQ, Google Closure Compiler and ADR Tools. For an even better developer experience there is a .devcontainer.json
file to spin up the development environment with the VS Code Remote - Containers extension.
Building
Make is the build tool. We use the Google Closure Compiler for compiling and bundling your Node.js library. A browser bundle is automatically generated too. Tape is used for testing.
Release
On every push to your main branch (either main
or master
) a GitHub workflow will automatically publish a new version to both NPM and GitHub. The semantic-release tool automatically works out the next version by analysing your commit messages. A CHANGELOG file is automatically generated.
Pull Request
A GitHub workflow runs all your tests against all pull requests.
Documentation
We use Slate to generate API documentation from your source files. A GitHub workflow automatically deploys to gh-pages
on every push to your main branch. (Example https://customcommander.github.io/project-blueprint/)
Architecture Decision Records (ADR)
Keeping a record of your architecture decisions is as important as writing and maintaining code. The development environment comes with ADR Tools.