Awesome
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-support
Usage
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 andscripts
entry that has tasks for both production and development. Must havename
,description
fields.- 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.json
as follows:- Copies the root
package.json
- Removes
package.json:devDependencies
- Replaces
package.json:dependencies
withARCHETYPE-dev/package.json:dependencies
- Updates things like the
name
field to representARCHETYPE-dev
- Copies the root
-
Copies
README.md
toARCHETYPE-dev/README.md
-
Copies
.gitignore
toARCHETYPE-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 project
If 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.