polylithic v0.0.5
Polylithic
Polylithic is a tool to help manage shared dependencies across multiple repositories.
Monolithic repositories are gross, Polylithic repositories are better.
⚠️ polylithic is still early in development
Basics
Even though Polylithic supports multiple repos, these repos must be contained under a single root folder.
Polylithic can divide dependencies into different projects. Each project definition can have it's own unique dependencies and each child repo can map to multiple projects. In order of importance. (if you're reading this, then I haven't fleshed that order out yet!)
Getting Started
Install with npm:
npm install -g polylithic
In your root folder, define a depot.json
file. This is where you will store your configurations for different projects. The depot.json
file should look like the following:
depot.json
{
"projectName": {
"dependencies": {
"bootstrap": "^3.3.7",
},
"devDependencies": {
"stylus": "^0.54.5",
"webpack": "^2.5.1"
}
},
"secondProject": {
"dependencies": {
"koa": "^2.2.0"
}
}
}
In your child projects, add a "poly"
property with an array to your package.json
config, so it looks like the following:
package.json
{
"name": "child",
"version": "1.0.0",
"description": "",
"main": "index.js",
"author": "",
"license": "ISC",
"poly": [
"projectName",
"secondProject"
],
}
Then in the parent folder run the command poly
in your console to update your packages. Polylithic will then loop through your top level child projects, updating their package.json
dependencies based on the depot.json
config.
THAT'S IT! (for polylithic anyway, you still need to check these in)