mrpm

monorepo package manager

Stats

StarsIssuesVersionUpdatedCreatedSize
mrpm
334.1.04 months ago4 years agoMinified + gzip package size for mrpm in KB

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

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.