allow-publish-version v1.0.0-rc.1
Allow Publish Version
Allow Publish Version util protects your NPM package from being accidentally
published with invalid version. Use it with prepublishOnly
script of package.json.
It will check your package version to be valid NPM subset of semver
with exact prerelease record. Valid versions might look like 1.0.0
or 1.0.0-beta.1
.
Installation
npm i allow-publish-version
Usage
- Add
prepublishOnly
script inpackage.json
. - Run
npm publish
when you're ready to publish your package, ornpm publish --dry-run
to test.
Example package.json
:
{
"version" : "1.0.0-alpha.1",
"scripts": {
"prepublishOnly": "allow-publish-version"
},
}
By default there will be alpha
, beta
and rc
prereleases allowed.
Examples
Valid versions:
1.0.0
1.0.0-pre.1
1.0.0-pre.beta.1
Invalid versions:
1.0 # Not a valid semver.
1.0.0-beta # No prerelease version.
1.0.0-pre.0 # Prerelease index should start from 1.
1.0.0-pre.1.0 # Prerelease name couldn't contain numbers.
1.0.0-beta.0+x64 # Builds are not supported by NPM.
Configuration
APV could be configured to use another prerelease scheme with package.json
.
{
"version" : "1.0.0-nightly.1",
"scripts": {
"prepublishOnly": "allow-publish-version"
},
"allowPublishVersion": {
"prereleases": ["nightly", "beta"]
}
}
API
AllowPublishVersionRecord
AllowPublishVersionFlag | AllowPublishVersionList | AllowPublishVersionDict
Configuration value AllowPublishVersionRecord
describes the value of allowPublishVersion
field of package.json
.
AllowPublishVersionFlag
true
Boolean value true
turns default APV configuration on.
Example:
{
"allowPublishVersion": true
}
AllowPublishVersionList
Array<string>
Array should contain allowed prerelease names or picomatch-compatible glob patterns.
Example:
{
"allowPublishVersion": ["beta", "pre.*"]
}
AllowPublishVersionDict
{
prereleases: Array<string>
}
Dictionary holds single field prereleases
. This field contains allowed prerelease names or picomatch-compatible glob patterns.
Example:
{
"allowPublishVersion": {
"prereleases": ["beta", "pre.*"]
}
}
License
MIT.
3 years ago