code.js
1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
let _ = require('lodash');
let chalk = require('chalk');
let path = require('path');
let shelljs = require('shelljs');
let fs = require('fs');
let util = require('./util');
let opn = require('opn')
let config = require('../config')
if (!process.env.npm_config_module || !process.env.npm_config_page) {
console.log(chalk.red('缺少-module或者-page参数'));
return;
}
let templateData = {
moduleName: process.env.npm_config_module,
pageName: process.env.npm_config_page
};
let codeMode = process.env.npm_config_mode || 'list';
let restPath = path.join(__dirname, '../../app/pages', `/${templateData.moduleName}/${templateData.pageName}`);
if (fs.existsSync(restPath)) {
console.log(chalk.red(`已经存在/${templateData.moduleName}/${templateData.pageName}目录结构`));
return;
}
shelljs.exec(`mkdir -p ${restPath}`); // 创建页面目录
// 递归编译模板文件并copy到restPath目录
util.complieFile(templateData, '/', codeMode, restPath) && console.log(chalk.green(`模板编译完成`));
// 模块入口文件路径
let moduleIndexPath = path.join(__dirname, '../../app/pages', `/${templateData.moduleName}/index.js`);
// 全局入口文件路径
let indexPath = path.join(__dirname, '../../app/pages', `/index.js`);
// 模块入口中添加page引用
util.complieRef(moduleIndexPath, templateData.pageName) && console.log(chalk.green(`页面引用已添加`));
// 全局入口中添加module的引用
util.complieRef(indexPath, templateData.moduleName) && console.log(chalk.green(`模块引用已添加`));
console.log(chalk.green(`创建完成`));
console.log(chalk.green(`正在打开新页面...`));
setTimeout(() => {
var uri = `http://localhost:${config.dev.port}/${templateData.moduleName}/${templateData.pageName}.html`;
opn(uri)
}, 1000);