UNPKG

2.03 kBJavaScriptView Raw
1const fse = require("fs-extra"); // fs-extra 扩展包
2const mtldev = require("mtl-dev-sdk");
3const utils = require("./m_util.js");
4const inquirer = require("inquirer");
5
6const promptList = [
7 {
8 type: "list",
9 message: "请选择页面模板:",
10 name: "name",
11 choices: ["html", "react"],
12 filter: function(val) {
13 // 使用filter将回答变为小写
14 return val.toLowerCase();
15 }
16 }
17];
18
19/**
20 * MTL工程 验证工程名称是否正确
21 * @param {String} projectName
22 *
23 */
24
25async function addView(an, tl) {
26
27 if (!an) {
28 return utils.consoleLog(" 必须录入页面名称");
29 }
30 if (!utils.isMtlProject()) {
31 return;
32 }
33 if (!utils.isVerifyProjectName(an)) {
34 return utils.consoleLog("页面名称不能包含特殊字符,长度不能超过64位。");
35 }
36 if (fse.existsSync(an)) {
37 return utils.consoleLog(
38 "本地已存在- " + an + " - ,同一目录下不能重名!!!"
39 );
40 }
41 let pages = mtldev.getPageInfos(mtldev.technologyStack());
42 if (!pages || pages.length <= 0) {
43 return utils.consoleLog("当前没有模板可用-");
44 }
45 getPagesOptionByTl(tl, pages, an);
46}
47/**
48 * 选择模板,生成配置文件
49 */
50function getPagesOptionByTl(tl, pages, an) {
51 if (tl) {
52 downloadPage(tl,an);
53 return;
54 }
55 let list = [];
56
57 let names ={};
58 for (let key in pages){
59 let va = pages[key].name;
60 names[va] = key;
61 list.push(key)
62 }
63 if(list.length <=0 ){
64 return utils.consoleLog("前没有模板可用");
65 }
66 utils.consoleLog(JSON.stringify(names));
67 promptList[0].choices = list;
68 inquirer.prompt(promptList).then(answers => {
69 utils.consoleLog(answers.name);
70 downloadPage(answers.name,an);
71 });
72}
73
74//根据模板下载工程
75function downloadPage(tl,newname) {
76 let result = mtldev.downloadPageByTemplate( tl, newname);
77 let code = result.code;
78 if (code == 200) {
79 utils.consoleLog(`添加完成: ${newname}`);
80 } else {
81 utils.consoleLog(JSON.stringify(result));
82 }
83}
84
85module.exports = {
86 addView
87};