Skip to content

Instantly share code, notes, and snippets.

@HynekS
Forked from simon360/check-packages.js
Created March 21, 2024 07:56
Show Gist options
  • Save HynekS/82bf0122a9840a0b20f78d8d18ec006e to your computer and use it in GitHub Desktop.
Save HynekS/82bf0122a9840a0b20f78d8d18ec006e to your computer and use it in GitHub Desktop.
Compare different package.json files in a monorepo to see if dependency versions differ
const chalk = require("chalk");
const packages = [
require("./package.json"),
require("./packages/cec-scripts/package.json"),
require("./packages/generator-cec/package.json"),
require("./packages/utility-cec-simulator/package.json")
];
const compareDeps = p => {
console.log(`Comparing ${chalk.cyan(p.name)}`);
console.log();
const pDependencies = {
...(p.dependencies || {}),
...(p.devDependencies || {})
};
for (const p2 of packages) {
if (p2.dependencies) {
const p2Dependencies = {
...p2.dependencies,
...p2.devDependencies
};
for (const d of Object.keys(p2Dependencies)) {
if (pDependencies[d] && pDependencies[d] !== p2Dependencies[d]) {
console.log(`* Dependency ${chalk.yellow(d)} differs:
${chalk.cyan(p.name)}: ${chalk.green(pDependencies[d])}
${chalk.cyan(p2.name)}: ${chalk.green(p2Dependencies[d])}`);
}
}
}
}
console.log();
console.log();
};
while (packages.length > 0) {
console.log();
const p = packages.pop();
compareDeps(p);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment