@@ -31,12 +31,9 @@ exports.run = function (options) {
31
31
defaultName = sysPath . basename ( cwd ) ;
32
32
}
33
33
34
- spinner . start ( ) ;
35
-
36
34
// TODO 也许可以改成通过命令行让用户输入
37
35
var projectName = defaultName ;
38
36
var initTmplPath = sysPath . resolve ( __dirname , '../config/initTmpl/' ) ;
39
- var writePackageJsonStream = void 0 ;
40
37
41
38
// 如果初始化时带着初始化类型
42
39
if ( typeof process . argv [ 3 ] === 'string' ) {
@@ -67,6 +64,7 @@ exports.run = function (options) {
67
64
var initParam = process . argv [ 3 ] ;
68
65
var isInitReady = false ;
69
66
67
+ spinner . start ( ) ;
70
68
async . series ( [
71
69
// 寻找是否存在 ykit-config-xxx 的插件
72
70
function ( callback ) {
@@ -78,7 +76,12 @@ exports.run = function (options) {
78
76
checkConfigPkg ( callback , '@qnpm/ykit-config-' + initParam , 'corp.qunar.com' ) ;
79
77
} ] , function ( err ) {
80
78
// results is now equal to ['one', 'two']
81
- isInitReady ? spinner . succeed ( ) : spinner . fail ( ) ;
79
+ if ( isInitReady ) {
80
+ spinner . stop ( ) ;
81
+ } else {
82
+ spinner . text ( 'can\'t find package ykit-config-' + initParam ) ;
83
+ spinner . fail ( ) ;
84
+ }
82
85
} ) ;
83
86
} ) ( ) ;
84
87
} else {
@@ -87,59 +90,67 @@ exports.run = function (options) {
87
90
}
88
91
89
92
function initProject ( configPkgName , registry ) {
90
- async . series ( [
91
- // 创建 packge.json
92
- function ( callback ) {
93
- if ( ! UtilFs . fileExists ( packageJsonPath ) ) {
94
- writePackageJsonStream = createPackageJson ( ) ;
95
- writePackageJsonStream . on ( 'finish' , function ( ) {
96
- log ( 'Saved package.json file in ' + cwd ) ;
97
- callback ( null ) ;
98
- } ) ;
99
- } else {
100
- callback ( null ) ;
101
- }
102
- } ,
103
- // 创建 ykit.{type}.js
104
- function ( callback ) {
105
- createConfigFile ( configPkgName ) ;
106
- callback ( null ) ;
107
- } ,
108
- // 拷贝模板
109
- function ( callback ) {
110
- createTmpl ( ) ;
111
- callback ( null ) ;
112
- } ,
113
- // 安装 config 插件
114
- function ( callback ) {
115
- if ( configPkgName && registry ) {
116
- installConfigPlugin ( configPkgName , registry ) ;
117
- callback ( null ) ;
118
- } else {
119
- callback ( null ) ;
120
- }
121
- } ] , function ( err , results ) {
122
- spinner . succeed ( ) ;
93
+ var funcSeries = [ ] ;
94
+
95
+ if ( configPkgName ) {
96
+ funcSeries = [ function ( callback ) {
97
+ return createPackageJson ( callback ) ;
98
+ } , function ( callback ) {
99
+ return installConfigPlugin ( callback , configPkgName , registry ) ;
100
+ } , function ( callback ) {
101
+ return createConfigFile ( callback , configPkgName ) ;
102
+ } , function ( callback ) {
103
+ return setup ( callback ) ;
104
+ } ] ;
105
+ } else {
106
+ funcSeries = [ function ( callback ) {
107
+ return createPackageJson ( callback ) ;
108
+ } , function ( callback ) {
109
+ return createConfigFile ( callback , configPkgName ) ;
110
+ } , function ( callback ) {
111
+ return createTmpl ( callback ) ;
112
+ } ] ;
113
+ }
114
+
115
+ async . series ( funcSeries , function ( err , results ) { } ) ;
116
+ }
117
+
118
+ function setup ( callback ) {
119
+ shell . exec ( 'ykit setup' , { silent : false } , function ( code , stdout , stderr ) {
120
+ callback ( stderr ) ;
123
121
} ) ;
124
122
}
125
123
126
- function installConfigPlugin ( configPkgName , registry ) {
124
+ function installConfigPlugin ( callback , configPkgName , registry ) {
127
125
if ( configPkgName ) {
128
126
console . log ( 'installing ' + configPkgName ) ;
129
127
130
128
shell . exec ( 'npm install ' + configPkgName + ' --registry http://registry.npm.' + registry , { silent : false } , function ( code , stdout , stderr ) {
131
129
if ( ! stderr ) {
132
130
console . log ( 'installing ' + configPkgName + ' succeed!!!' ) ;
133
131
}
132
+ callback ( null ) ;
134
133
} ) ;
135
134
}
136
135
}
137
136
138
- function createPackageJson ( ) {
139
- return fs . createReadStream ( sysPath . resolve ( initTmplPath , 'package.json' ) ) . pipe ( replaceStream ( '#_name' , projectName ) ) . pipe ( fs . createWriteStream ( sysPath . resolve ( cwd , 'package.json' ) ) ) ;
137
+ function createPackageJson ( callback ) {
138
+ if ( ! UtilFs . fileExists ( packageJsonPath ) ) {
139
+ var writePackageJsonStream = create ( ) ;
140
+ writePackageJsonStream . on ( 'finish' , function ( ) {
141
+ log ( 'Saved package.json file in ' + cwd ) ;
142
+ callback ( null ) ;
143
+ } ) ;
144
+ } else {
145
+ callback ( null ) ;
146
+ }
147
+
148
+ function create ( ) {
149
+ return fs . createReadStream ( sysPath . resolve ( initTmplPath , 'package.json' ) ) . pipe ( replaceStream ( '#_name' , projectName ) ) . pipe ( fs . createWriteStream ( sysPath . resolve ( cwd , 'package.json' ) ) ) ;
150
+ }
140
151
}
141
152
142
- function createConfigFile ( configPkgName ) {
153
+ function createConfigFile ( callback , configPkgName ) {
143
154
var configFileName = 'ykit.js' ;
144
155
145
156
if ( configPkgName ) {
@@ -154,15 +165,16 @@ exports.run = function (options) {
154
165
stream . on ( 'finish' , function ( ) {
155
166
log ( 'Saved ' + configFileName + ' in ' + cwd ) ;
156
167
} ) ;
168
+
169
+ callback ( null ) ;
170
+ } else {
171
+ callback ( null ) ;
157
172
}
158
173
}
159
174
160
- function createTmpl ( ) {
161
- fs . copy ( sysPath . resolve ( initTmplPath , './src' ) , sysPath . resolve ( cwd , './src' ) , function ( err ) {
162
- if ( err ) return console . error ( err ) ;
163
- } ) ;
164
- fs . copy ( sysPath . resolve ( initTmplPath , './index.html' ) , sysPath . resolve ( cwd , './index.html' ) , function ( err ) {
165
- if ( err ) return console . error ( err ) ;
166
- } ) ;
175
+ function createTmpl ( callback ) {
176
+ fs . copySync ( sysPath . resolve ( initTmplPath , './index.html' ) , sysPath . resolve ( cwd , './index.html' ) ) ;
177
+ fs . copySync ( sysPath . resolve ( initTmplPath , './src' ) , sysPath . resolve ( cwd , './src' ) ) ;
178
+ callback ( null ) ;
167
179
}
168
180
} ;
0 commit comments