builder-support v0.5.0
Builder Support Tools
Support tools for authoring builder archetypes.
Installation
To use the production and development workflows, install both this package and the development module:
$ npm install --save-dev builder-supportUsage
builder-support gen-dev
Use this tool to create an ARCHETYPE-dev module for publishing alongside
ARCHETYPE with the same version numbers, details, etc.
This tools assumes an archetype structure of:
package.json- Dependencies needed for production tasks andscriptsentry that has tasks for both production and development. Must havename,descriptionfields.- A development sub-directory or independent repository containing dependencies
for development tasks only.
dev/package.json../ARCHETYPE-dev/package.json
Assuming those exist, then the tool:
Modifies
ARCHETYPE-dev/package.jsonas follows:- Copies the root
package.json - Removes
package.json:devDependencies - Replaces
package.json:dependencieswithARCHETYPE-dev/package.json:dependencies - Updates things like the
namefield to representARCHETYPE-dev
- Copies the root
Copies
README.mdtoARCHETYPE-dev/README.md- Copies
.gitignoretoARCHETYPE-dev/.gitignore
This supports a workflow as follows:
$ vim HISTORY.md # Version notes
$ vim package.json # Bump version
$ builder-support gen-dev # Generate `ARCHETYPE-dev` files
$ npm run builder:check # Last check!
$ git add .
$ git commit -m "Version bump"
$ git tag -a "vNUMBER" -m "Version NUMBER"
$ git push && git push --tags
$ npm publish # Publish main project
# Publish dev project in same repo
$ cd dev && npm publish
# (OR) Publish dev project in different, parallel repo
$ cd ../ARCHETYPE-dev
$ git commit -m "Version bump"
$ git tag -a "vNUMBER" -m "Version NUMBER"
$ git push && git push --tags
$ npm publish # Publish dev projectIf you are bootstrapping a new archetype you will need to ensure either that
a ARCHETYPE/dev or ../ARCHETYPE-dev directory exists. The rest of the files
when then be properly generated into the dev project.
And you should be good to run builder-support gen-dev in the project root.