Monomono is a multi-package manager for nodejs projects.
Currently the project only supports nodejs projects in a mono-repo format.
The goal is to make it as extensible and customizable as possible to work for any project setup or environement.
Install package.
npm install monomono
Add script to package.json
"scripts": {
"mono": "mono"
}
Will initialize a default mono.json config file and track all packages in the ./packages directory.
npm run mono init
This will sync all version numbers in managed packages. If package two realies on package one and you update package one, this will update packages two's dependencies and automatically bump the version as a patch. This will be done for the entire dependency tree.
npm run mono sync
Run bootstrap command in all pacakges. In the case of node pacakges, it will run npm install
.
npm run mono bootstrap
Runs clean command in all packages. In the case of node pacakges, it will run rm -rf node_modules
.
npm run mono clean
Tells mono to add a package to the managed packages list.
npm run mono add <directory>
Removes a package from the managed packages list.
npm run mono remove <directory>
Currently this is a node specific command. It will execute npm publish
in all managed packages.
npm run mono publish
Executes the given command line string in all managed packages.
npm run mono exec '<my command>'