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
prepublishOnlyscript inpackage.json. - Run
npm publishwhen you're ready to publish your package, ornpm publish --dry-runto 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.