monorepo
A CLI utility program for Node.js monorepo projects.npm install monorepo --save-dev
Features
- Adapters. Use either
npm
(default) oryarn
. - Parallel. Runs package scripts and commands in parallel.
Motivation
lerna
is pretty good, but seems bloated and messes up the output to stdout.Usage
Add amonorepo.json
to the root of the project. Example:{
"adapter": "npm",
"packages": ["packages/*"]
}
To install all the sub-package dependencies, run:
monorepo install
To publish all the sub-package dependencies, run:
monorepo publish
To run the
test
script in each of the packages, run:monorepo run test
API
monorepo(args, flags, opts, cb)
monorepo
may be used as a Node.js module:const monorepo = require('monorepo')
monorepo(
['test'],
{adapter: 'yarn', quiet: true},
{cwd: path.resolve(__dirname, 'path/to/root')},
err => {
if (err) {
console.error(err.message)
process.exit(err.code || 1)
}
}
)