The semantic-release-npm-deprecate
plugin provides functionality to mark NPM releases as deprecated.
Read more about Semantic Release.
$ npm install -D semantic-release-npm-deprecate
The following example will mark all previous major versions as deprecated. That is, if the next release is 2.3.4
, all versions < 2
will be marked as deprecated.
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/npm",
[
"semantic-release-npm-deprecate",
{
"deprecations": [
{
"version": "< ${nextRelease.version.split('.')[0]}",
"message": "Please use ^${nextRelease.version.split('.')[0]}.0.0."
}
]
}
]
]
}
This plugin runs in the publish
lifecycle.
deprecations
: An array containing objects with the following properties:version
: A version range that will be deprecated.message
: A message that will be added to the release notes.
This plugin will also check for configuration in the package.json
file under the deprecations
field. This is experimental and the field name may change in the future.
Configuration for NPM registry, token, etc matches that of @semantic-release/npm.
The version
and message
fields support Lodash templates and are passed the Context object. The following example uses the nextRelease
object to get the next release version and split off the major version.
{
version: "< ${nextRelease.version.split('.')[0]}";
}
See https://semver.npmjs.com/ for all supported version ranges.