Fine tune all your mono-repo dependency updates.
A tool to search all package.json files in a given folder, find their dependencies and update the package.json with the latest version of those dependencies.
Fine tune the updates you wish to make. For example, keep life simple by updating only those with new 'patches' (or bug fixes).
Working to keep mono-repo dependencies up-to-date and in sync can take time. Sonar makes our lives easier by automating these sem-ver updates.
We use Sonar daily to keep all our internally created scopes up to date.
Then every month we use Sonar to update external updates which dont have breaking changes.
Monthly, we also gauge how many external dependencies have had major releases. This helps us plan how much time we need to spend on this new tech-debt and when we should make the updates.
sonar --no-internal --major --dry-run
zero config needed
Out of the box, Sonar will update dependencies (inc. peerDependencies and devDependencies) with new patch and minor releases.
Alternatively, using a
sonar.config.js, or the CLI options, you can set your own defaults.
Commands:sonar ignoreScopes This scopes will be ignored by the updatersonar internalScopes Flag scopes as internalsonar internal Update scopes flagged as internalsonar external Update scopes not marked as internalsonar patch Update to the latest patch semantic versionsonar minor Update to the latest minor semantic versionsonar major Update to the latest major semantic versionsonar dependencies Update dependenciessonar devDependencies Update devDependenciessonar peerDependencies Update peerDependenciessonar fail Terminate the process with an error
What will be updated?
When version numbers are pinned (e.g. '1.2.3'), and a new patch is available, the package.json will be rewritten to match the new version (e.g. '1.2.4').
Using version ranges like caret (^), tilde (~) or wildcards may mean there is nothing to update.
~1.0.4will not be updated if a new patch is released, but will be updated if a new minor release becomes available (
^1.0.4will not be updated if a new minor is released, but will be updated if a new major release becomes available (
For more information go here: https://docs.npmjs.com/about-semantic-versioning