@@ -43,11 +43,26 @@ function getNextVersion(bump: typeof options['bump']) {
43
43
// the package might not have been published yet
44
44
}
45
45
46
+ if ( bump ) {
47
+ const [ _ , major , minor , patch ] = pkgJson . version . match ( / ( 0 | [ 1 - 9 ] \d * ) \. ( 0 | [ 1 - 9 ] \d * ) \. ( 0 | [ 1 - 9 ] \d * ) ( - .+ \. \d + ) ? / ) ;
48
+
49
+ switch ( bump ) {
50
+ case 'major' :
51
+ return `${ Number ( major ) + 1 } .0.0` ;
52
+ case 'minor' :
53
+ return `${ major } .${ Number ( minor ) + 1 } .0` ;
54
+ case 'patch' :
55
+ return `${ major } .${ minor } .${ Number ( patch ) + 1 } ` ;
56
+ default :
57
+ throw new Error ( `Unknown bump type: ${ bump } ` ) ;
58
+ }
59
+ }
60
+
46
61
if ( options . canary ) {
47
62
if ( versions . some ( ( v ) => v === pkgJson . version ) ) {
48
63
// eslint-disable-next-line no-console
49
- console . error ( `before-deploy: A release with version ${ pkgJson . version } already exists. Please increment version accordingly .`) ;
50
- process . exit ( 1 ) ;
64
+ console . warn ( `Version ${ pkgJson . version } already exists on npm. Bumping patch version.`) ;
65
+ pkgJson . version = getNextVersion ( 'patch' ) ;
51
66
}
52
67
53
68
const preid = options . preid ?? 'alpha' ;
@@ -58,18 +73,6 @@ function getNextVersion(bump: typeof options['bump']) {
58
73
59
74
return `${ pkgJson . version } -${ preid } .${ lastPrereleaseNumber + 1 } ` ;
60
75
}
61
- const [ _ , major , minor , patch ] = pkgJson . version . match ( / ( 0 | [ 1 - 9 ] \d * ) \. ( 0 | [ 1 - 9 ] \d * ) \. ( 0 | [ 1 - 9 ] \d * ) ( - .+ \. \d + ) ? / ) ;
62
-
63
- switch ( bump ) {
64
- case 'major' :
65
- return `${ Number ( major ) + 1 } .0.0` ;
66
- case 'minor' :
67
- return `${ major } .${ Number ( minor ) + 1 } .0` ;
68
- case 'patch' :
69
- return `${ major } .${ minor } .${ Number ( patch ) + 1 } ` ;
70
- default :
71
- throw new Error ( `Unknown bump type: ${ bump } ` ) ;
72
- }
73
76
}
74
77
75
78
// as we publish only the dist folder, we need to copy some meta files inside (readme/license/package.json)
0 commit comments