semverGroups
Allow some packages to have different semver range rules to the rest of your monorepo. Each dependency can only belong to one semver group, the first rule which matches a given dependency and package will apply.
Examples
Section titled “Examples”1: Every dependency of @myrepo/library
should have a semver range of ~
, regardless of what the rest of the monorepo uses:
{ "semverGroups": [ { "packages": ["@myrepo/library"], "range": "~" } ]}
2: Every dependency of @myrepo/library
whose name matches @alpha/**
should have a semver range of ^
, regardless of what the rest of that package or the rest of the monorepo uses:
{ "semverGroups": [ { "dependencies": ["@alpha/**"], "packages": ["@myrepo/library"], "range": "^" } ]}
3: Every dependency in the monorepo whose name matches @alpha/**
should have a semver range of ~
, regardless of what the rest of the monorepo uses:
{ "semverGroups": [ { "dependencies": ["@alpha/**"], "range": "~" } ]}
4: Production dependencies should have fixed version numbers, but development and peer dependencies can be broader.
{ "semverGroups": [ { "dependencyTypes": [ "prod", "resolutions", "overrides", "pnpmOverrides", "local" ], "range": "" }, { "dependencyTypes": ["dev"], "range": "~" }, { "dependencyTypes": ["peer"], "range": "^" } ]}