mrpm
MonoRepo Package Manager.
This is the CLI tool that runs the npm command for each monorepo projects.
Inspired by mariuslundgard/monorepo.
Why?
It was created to execute a simple npm command in order of dependencies.
Usage
install
npm i -D mrpm
Example of dir & package.json
pkgroot
+--packages
| +--subpkg1
| | `--package.json
| `--subpkg2
| `--package.json
`--package.json
pkgroot/package.json
{
//...
"private": true,
//...
"scripts": {
"test": "mrpm run test",
"build": "mrpm run build",
//...
},
//...
}
pkgroot/packages/subpkg1/package.json
or
pkgroot/packages/subpkg2/package.json
{
// If `private` is set to `true`, it will be excluded from `publish`
// "private": true,
//...
"scripts": {
"test": "...",
"build": "...",
//...
},
//...
}
Example of commands
-
npm install
for each monorepo projects.
mrpm install
-
npm update
for each monorepo projects.
mrpm update
-
npm publish
for each monorepo projects.
mrpm publish
-
npm run
script for each monorepo projects.
mrpm run xxx
-
npm prune
for each monorepo projects.
mrpm prune
Options
--mrpm-max-workers=<num>
Specifies the maximum number of workers the worker-pool will spawn for running commands.
Travis CI.
Example of Deploy withfiles
package.json
.travis.yml
deploy.sh
package.json
{
//...
"private": true,
//...
"scripts": {
//...
"publish:all": "mrpm publish",
//...
},
"devDependencies": {
"mrpm": "x.x.x"
}
}
.travis.yml
language: node_js
node_js:
- "node"
deploy:
provider: script
script: sh $TRAVIS_BUILD_DIR/deploy.sh
deploy.sh
#!/usr/bin/env bash
npm config set //registry.npmjs.org/:_authToken $NPM_TOKEN
npm run publish:all