mrpm

monorepo package manager

Usage no npm install needed!

<script type="module">
  import mrpm from 'https://cdn.skypack.dev/mrpm';
</script>

README

mrpm

npm npm npm npm npm npm Build Status

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.

Example of Deploy with Travis CI.

files

  • 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