Builder Docs Archetype
A Builder archetype for Formidable static React landers.
- In the root, you need to create a
./static-routes.jsfile that exports an array of all the routes your heart desires.
To release a project controlled by this archetype (e.g.,
use the following guide:
IMPORTANT - NPM: To correctly run
preversion your first step is to make
sure that you have a very modern
$ npm install -g npm
Built files in
build/ should not be committed during development or PRs.
Instead we only build and commit them for published, tagged releases. So
the basic workflow is:
# Make sure you have a clean, up-to-date `master`$ git pull$ git status # (should be no changes)# Choose a semantic update for the new version.# If you're unsure, read about semantic versioning at$ npm version major|minor|patch -m "Version %s - INSERT_REASONS"# Push the `build/` directory, version commits, and tag:$ git push --follow-tags# And finally publish to `npm`!$ npm publish
And you've published!
For a reliable systems of releases, the landers should aim for versioning along these lines:
- Patch: Typos, missing assets, broken styles, very minor copyedits.
- Minor: Add a new blog post, change styles.
- Major: Rearchitect how the lander works, remove pages, or something else huge.
For additional information on the underlying NPM technologies and approaches, please review:
This section applies to the archetype itself (
You can read the Builder docs for the full story. Here is an overview of the Builder three-way dependency scheme:
package.json:dependencies: Production dependencies for the archetype installed in a project.
dev/package.json:dependencies: Development dependencies for the archetype installed in a project.
package.json:devDependencies: The development dependencies used internally for the this archetype during development (self tests, checks, etc.) that are not part of the overall archetype outside workflow.
npm run builder:check
For tagged official releases only of the archetype, make sure to:
- Generate a new
- Add to git, tag, and publish
$ vim package.json # Bump version$ vim CHANGELOG.md # Add version notes$ builder-support gen-dev # Generate `dev/*` files$ npm run builder:check # Last check!$ git add package.json dev$ git commit -m "Version bump"$ git tag -a "vNUMBER" -m "vNUMBER - INSERT_REASONS" # Create tag$ git push --follow-tags$ npm publish # Publish main project$ cd dev && npm publish # Publish dev project