@@ -6,17 +6,20 @@ const findLatestVersion = (versionSet) => {
66} ;
77
88const getAlphaVersion = ( versionSet ) => {
9- let latestVersion = findLatestVersion ( versionSet ) ;
10- const nextBetaVersion = semver . inc ( latestVersion , 'preminor' , 'beta' ) ;
11- // 如果已经有beta版本了,那么就得发下个版本的alpla版
12- if ( versionSet . has ( nextBetaVersion ) ) {
13- latestVersion = semver . inc ( latestVersion , 'minor' ) ;
9+ // 1. 找到最新的正式版(不带 pre-release 的)
10+ const arr = Array . isArray ( versionSet ) ? versionSet : [ ...versionSet ] ;
11+ const validVersions = arr . filter ( v => semver . valid ( v ) ) ;
12+ validVersions . sort ( semver . rcompare ) ;
13+ const latestStable = validVersions . find ( v => ! semver . prerelease ( v ) ) ;
14+ // 2. 计算下一个 minor 的 alpha.0
15+ const nextMinor = semver . inc ( latestStable , 'minor' ) ;
16+ let nextAlpha = `${ nextMinor } -alpha.0` ;
17+ // 3. 如果已存在,则递增 alpha 号
18+ while ( versionSet . has ( nextAlpha ) ) {
19+ // 取当前 alpha 号,递增
20+ nextAlpha = semver . inc ( nextAlpha , 'prerelease' , 'alpha' ) ;
1421 }
15- let nextVersion = semver . inc ( latestVersion , 'preminor' , 'alpha' ) ;
16- while ( versionSet . has ( nextVersion ) ) {
17- nextVersion = semver . inc ( nextVersion , 'prerelease' , 'alpha' ) ;
18- }
19- return nextVersion ;
22+ return nextAlpha ;
2023} ;
2124
2225const getBetaVersion = ( versionSet ) => {
0 commit comments