paco
paco
is an npm module development and distribution CLI utility, optimized for package libraries.
paco
aims to make module development easier, especially when working with module libraries (e.g. one repo, many modules). This is addressed by providing the following features:
- Grouping and automation of common tasks into single tasks (e.g.
paco bump
or paco release
) - Shared, inheritable and overridable configurations for all modules in a directory
- Shared npm scripts from parent
package.json
files (e.g. one build script to rule them all) - Git commit message templates when bumping module versions
For now, paco is mainly designed to be used as a global install, although it'll probably work just as well as a local developement depencency.
Table of contents
Installation
npm install -g paco
Usage
paco -h
paco <command> -h
paco init
paco config [key] [value]
paco test
paco lint
paco verify
paco build
paco prepare
paco bump [--tag] [--message="(%name%) Something about the new version: %s"] [--commit] [version]
paco release [version]
Configuration with .pacorc
.pacorc
is the config file that specifies paco's behavior. It must be placed in the package's root directory next to its package.json
.
The defaults are:
{
"traverse": true,
"lint": true,
"test": true,
"build": [
"%root_paco_path%/node_modules/.bin/babel %package_path%/src --out-dir %package_path%/dist"
],
"bump": {
"tag": false,
"commit": false,
"message": false
},
"release": {
"push": false,
"pushTags": false
}
}
Sub-package overrides
If you've got nested npm packages, you can place a .pacorc
inside a child package's root directory and override parent configs.
Development
cd path/to/paco
npm link
npm run dev
Pull requests are welcome.
Todos