1
1
const path = require ( 'path' ) ;
2
2
const fs = require ( 'fs-extra' ) ;
3
3
const semver = require ( 'semver' ) ;
4
- const request = require ( 'request' ) ;
5
4
const inquirer = require ( 'inquirer' ) ;
6
5
const conventionalChangelog = require ( 'conventional-changelog' ) ;
7
6
const config = require ( 'conventional-changelog-alifd' ) ;
7
+ const { execSync } = require ( 'child_process' ) ;
8
8
const { logger } = require ( '../utils' ) ;
9
9
10
10
const changelogPath = 'CHANGELOG.md' ;
@@ -16,15 +16,10 @@ module.exports = function* changelog() {
16
16
17
17
const packageInfo = require ( packagePath ) ;
18
18
19
- const npmInfo = yield getRemotePkgInfo ( ) ;
19
+ // const npmInfo = yield getRemotePkgInfo();
20
20
21
- const npmVersion = npmInfo [ 'dist-tags' ] . latest ;
22
-
23
- logger . success (
24
- `[提示] [local:${
25
- packageInfo . version
26
- } ] [npm:${ npmVersion } ] 请为本次提交指定新的版本号:`
27
- ) ;
21
+ const npmVersion = execSync ( `npm show ${ packageInfo . name } version` ) . toString ( ) ;
22
+ logger . success ( `[提示] [local:${ packageInfo . version } ] [npm:${ npmVersion } ] 请为本次提交指定新的版本号:` ) ;
28
23
29
24
const current = yield inquirer . prompt ( [
30
25
{
@@ -34,9 +29,7 @@ module.exports = function* changelog() {
34
29
message : '请输入待发布的版本号:' ,
35
30
validate : function ( value ) {
36
31
if ( ! semver . valid ( value ) || semver . lte ( value , npmVersion ) ) {
37
- return logger . warn (
38
- '请输入正确的版本号,并且大于基线版本号!'
39
- ) ;
32
+ return logger . warn ( '请输入正确的版本号,并且大于基线版本号!' ) ;
40
33
}
41
34
return true ;
42
35
} ,
@@ -47,30 +40,23 @@ module.exports = function* changelog() {
47
40
48
41
yield fs . writeJson ( packagePath , packageInfo , { spaces : 2 } ) ;
49
42
50
- logger . success (
51
- `[提示] 回写版本号 ${ packageInfo . version } 到 package.json success`
52
- ) ;
43
+ logger . success ( `[提示] 回写版本号 ${ packageInfo . version } 到 package.json success` ) ;
53
44
54
45
logger . info ( `正在生成 ${ changelogPath } 文件,请稍等几秒钟...` ) ;
55
46
56
47
conventionalChangelog ( {
57
48
config,
58
49
} ) . on ( 'data' , chunk => {
59
- const log = chunk
60
- . toString ( )
61
- . replace ( / ( \n # # [ . \d \w ] + ) \( ( [ \d - ] + ) \) \n / g, ( all , s1 , s2 ) => {
62
- return `${ s1 } / ${ s2 } \n` ;
63
- } ) ;
50
+ const log = chunk . toString ( ) . replace ( / ( \n # # [ . \d \w ] + ) \( ( [ \d - ] + ) \) \n / g, ( all , s1 , s2 ) => {
51
+ return `${ s1 } / ${ s2 } \n` ;
52
+ } ) ;
64
53
65
54
let changelogContent = fs . readFileSync ( changelogPath , 'utf8' ) ;
66
55
changelogContent = changelogContent
67
56
. split ( '\n' )
68
57
. slice ( 1 )
69
58
. join ( '\n' ) ;
70
- fs . writeFileSync (
71
- changelogPath ,
72
- `# Change Log \n\n${ log } ${ changelogContent } `
73
- ) ;
59
+ fs . writeFileSync ( changelogPath , `# Change Log \n\n${ log } ${ changelogContent } ` ) ;
74
60
75
61
const lines = log . split ( / \n / g) ;
76
62
let firstIndex = - 1 ,
@@ -90,43 +76,14 @@ module.exports = function* changelog() {
90
76
91
77
if ( firstIndex > - 1 ) {
92
78
secondIndex = secondIndex === - 1 ? lines . length : secondIndex ;
93
- const latestedLog = lines
94
- . slice ( firstIndex , secondIndex - 1 )
95
- . join ( '\n' ) ;
96
- fs . writeFileSync (
97
- latestedLogPath ,
98
- `# Latest Log \n\n${ latestedLog } `
99
- ) ;
79
+ const latestedLog = lines . slice ( firstIndex , secondIndex - 1 ) . join ( '\n' ) ;
80
+ fs . writeFileSync ( latestedLogPath , `# Latest Log \n\n${ latestedLog } ` ) ;
100
81
}
101
82
} ) ;
102
83
103
84
logger . success ( `成功将 ${ changelogPath } 文件生成到 ${ cwd } 目录下` ) ;
104
85
} ;
105
86
106
- function getRemotePkgInfo ( ) {
107
- return new Promise ( function ( resolve ) {
108
- const requestUrl = 'https://registry.npmjs.org/@alifd/next' ;
109
-
110
- try {
111
- request (
112
- {
113
- url : requestUrl ,
114
- timeout : 5000 ,
115
- json : true ,
116
- } ,
117
- function ( error , response , body ) {
118
- resolve ( body ) ;
119
- }
120
- ) ;
121
- } catch ( err ) {
122
- logger . error (
123
- 'Failed to reach: https://registry.npmjs.org/@alifd/next'
124
- ) ;
125
- resolve ( ) ;
126
- }
127
- } ) ;
128
- }
129
-
130
87
/**
131
88
* 升级版本号,如果是非语义化版本号,则不做处理,直接返回原值
132
89
*
0 commit comments