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.