@@ -6,8 +6,12 @@ var commander = require('commander');
6
6
var JSONConfig = require ( '../opm/Package/configloader/json.js' ) . JSONConfig ;
7
7
8
8
function init ( dir , options ) {
9
+ init . run ( dir , options ) ;
10
+ }
9
11
10
- init . root = path . join ( process . cwd ( ) , dir ) ;
12
+ // 用独立的方法运行init逻辑,保证扩展不必须要替换init方法就能实现扩展
13
+ init . run = function ( dir , options ) {
14
+ init . root = path . resolve ( process . cwd ( ) , dir ) ;
11
15
12
16
async . auto ( init . tasks , function ( err ) {
13
17
if ( err ) {
@@ -16,33 +20,40 @@ function init(dir, options) {
16
20
console . log ( 'inited' ) ;
17
21
}
18
22
} ) ;
19
- }
23
+ } ;
20
24
21
- init . infoCollectors = [
25
+ init . infoDefaults = {
26
+ name : function ( ) {
27
+ return path . basename ( init . root ) ;
28
+ } ,
29
+ version : '0.0.1'
30
+ } ;
31
+
32
+ init . infoCollectors = {
22
33
// 名称
23
- function ( callback ) {
24
- var defaultValue = path . basename ( init . root ) ;
34
+ name : function ( callback ) {
35
+ var defaultValue = init . infoDefaults [ 'name' ] ( ) ;
25
36
commander . prompt ( 'name(' + defaultValue + '): ' , function ( input ) {
26
37
init . config . setProperty ( 'name' , input || defaultValue ) ;
27
38
callback ( ) ;
28
39
} ) ;
29
40
} ,
30
41
// 版本
31
- function ( callback ) {
42
+ version : function ( callback ) {
32
43
var defaultValue = '0.0.1' ;
33
44
commander . prompt ( 'version(' + defaultValue + '): ' , function ( input ) {
34
45
init . config . setProperty ( 'version' , input || defaultValue )
35
46
callback ( ) ;
36
47
} ) ;
37
48
} ,
38
49
// 描述
39
- function ( callback ) {
50
+ description : function ( callback ) {
40
51
commander . prompt ( 'description: ' , function ( input ) {
41
52
init . config . setProperty ( 'description' , input ) ;
42
53
callback ( ) ;
43
54
} ) ;
44
55
}
45
- ] ;
56
+ } ;
46
57
47
58
init . tasks = {
48
59
'check_inited' : function ( callback , results ) {
@@ -71,7 +82,7 @@ init.tasks = {
71
82
} ] ,
72
83
// 初始化package.json
73
84
'save_package' : [ 'collect_info' , 'create_path' , function ( callback , results ) {
74
- init . config . save ( path . join ( root , 'package.json' ) , callback ) ;
85
+ init . config . save ( path . join ( init . root , 'package.json' ) , callback ) ;
75
86
} ]
76
87
} ;
77
88
0 commit comments