Skip to content

Commit 120758a

Browse files
build-npm: correctly set NPM tag on experimental pre-releases (#3161)
Example `v16.0.0-alpha.3.experimental-stream-defer.2`
1 parent dc2a3eb commit 120758a

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

resources/build-npm.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,17 @@ function buildPackageJSON() {
9090
const { preReleaseTag } = versionMatch.groups;
9191

9292
if (preReleaseTag != null) {
93-
const [tag] = preReleaseTag.split('.');
93+
const splittedTag = preReleaseTag.split('.');
94+
// Note: `experimental-*` take precedence over `alpha`, `beta` or `rc`.
95+
const publishTag = splittedTag[2] ?? splittedTag[0];
9496
assert(
95-
tag.startsWith('experimental-') || ['alpha', 'beta', 'rc'].includes(tag),
96-
`"${tag}" tag is supported.`,
97+
['alpha', 'beta', 'rc'].includes(publishTag) ||
98+
publishTag.startsWith('experimental-'),
99+
`"${publishTag}" tag is supported.`,
97100
);
98101

99102
assert(!packageJSON.publishConfig, 'Can not override "publishConfig".');
100-
packageJSON.publishConfig = { tag: tag || 'latest' };
103+
packageJSON.publishConfig = { tag: publishTag || 'latest' };
101104
}
102105

103106
return packageJSON;

0 commit comments

Comments
 (0)