builder-support

Builder support libraries

Usage no npm install needed!

<script type="module">
  import builderSupport from 'https://cdn.skypack.dev/builder-support';
</script>

README

Travis Status Coverage Status

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 and scripts entry that has tasks for both production and development. Must have name, 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 with ARCHETYPE-dev/package.json:dependencies
    • Updates things like the name field to represent ARCHETYPE-dev
  • Copies README.md to ARCHETYPE-dev/README.md

  • Copies .gitignore to ARCHETYPE-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.