1 | #!/usr/bin/env node
|
2 | var program = require('commander')
|
3 | var inquirer = require('inquirer')
|
4 | var exists = require('fs').existsSync
|
5 | var path = require('path')
|
6 | var fs = require('fs')
|
7 | var mkdirp = require('mkdirp');
|
8 | var logger = require('../lib/logger');
|
9 |
|
10 | const __root = process.cwd();
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | program
|
18 | .version('0.0.1')
|
19 |
|
20 | .usage('<-i project-name>')
|
21 | .usage('<-p page-name>')
|
22 | .option('-i, --init [value]','创建初始化项目')
|
23 | .option('-p, --page <items>','创建页面名称,自动生成目录和对应的.wxml,.wxss和.js文件',list)
|
24 | .parse(process.argv);
|
25 |
|
26 | var page = program.page;
|
27 | var init = program.init;
|
28 |
|
29 | if(page && ( page !== undefined ) && (page.length >0) ){
|
30 | inquirer.prompt([{
|
31 | type:"list",
|
32 | message:"选择在哪个项目创建页面",
|
33 | choices:['bus','train'],
|
34 | name:'dirname'
|
35 | }],function(answers){
|
36 | console.log(answers)
|
37 | if(answers.dirname){
|
38 | createPage(answers.dirname,program.page);
|
39 | }
|
40 | })
|
41 | }
|
42 |
|
43 | if( init ){
|
44 | createProject(init);
|
45 | }
|
46 |
|
47 |
|
48 |
|
49 |
|
50 | function list(value){
|
51 | return value.split(',')
|
52 | }
|
53 |
|
54 | function createPage(dirName,pages){
|
55 |
|
56 | if(pages == undefined) return;
|
57 |
|
58 | if(pages.length === 0){
|
59 | logger.fatal('请输入文件名');
|
60 | }
|
61 | var projectDir = __root + '/pages/'+ dirName +'/';
|
62 | for(var index in pages){
|
63 |
|
64 | var page = pages[index];
|
65 | var pageDir = projectDir + page;
|
66 | if( exists( pageDir ) ){
|
67 | logger.fatal('已存在目录' + pageDir)
|
68 | }else{
|
69 |
|
70 | console.log(pageDir)
|
71 | mkdirp(pageDir,function(err){
|
72 | if(err) {throw err; return}
|
73 | else{
|
74 | logger.success('成功创建'+ page +'/')
|
75 | fs.open(pageDir+'/'+page+'.wxml','w',function(){
|
76 | console.log('成功创建 ' + page + '.wxml 在目录 ' + pageDir)
|
77 |
|
78 | })
|
79 | fs.open(pageDir+'/'+page+'.wxss','w',function(){
|
80 | console.log('成功创建 ' + page + '.wxss 在目录 ' + pageDir)
|
81 | })
|
82 | fs.open(pageDir+'/'+page+'.js','w',function(err){
|
83 | if (err) throw err;
|
84 | fs.writeFile(pageDir+'/'+page+'.js',"Page({data:{},onLoad(){}})",'utf8',function(err){
|
85 |
|
86 | })
|
87 | console.log('成功创建 ' + page + '.js 在目录 ' + pageDir)
|
88 | })
|
89 | }
|
90 | writeToPkg(dirName,page);
|
91 | })
|
92 | }
|
93 | }
|
94 | }
|
95 |
|
96 | function createProject(name){
|
97 |
|
98 | console.log('todos:创建项目' + name)
|
99 | }
|
100 |
|
101 | function writeToPkg(path,page){
|
102 |
|
103 | var conf_path = __root + '/app.json';
|
104 | fs.readFile(conf_path,function(err,data){
|
105 | if(err) throw err;
|
106 | var pkg = JSON.parse(data.toString());
|
107 | if(pkg.pages != undefined){
|
108 |
|
109 | var newPath = 'pages/' + path + '/' + page + '/' + page;
|
110 |
|
111 | if(pkg.pages.indexOf(newPath) <= -1){
|
112 | pkg.pages.push( newPath );
|
113 | fs.writeFile(conf_path, JSON.stringify(pkg), function(err){
|
114 | if(err) throw err;
|
115 | else {
|
116 | console.log("新页面已写入配置文件");
|
117 | process.exit(0)
|
118 | }
|
119 | })
|
120 | }
|
121 | }else{
|
122 | console.log('请先创建pages字段');
|
123 | }
|
124 | })
|
125 | } |
\ | No newline at end of file |