1. 程式人生 > >根據EXML文件,生成組件聲明代碼

根據EXML文件,生成組件聲明代碼

namespace 命名 read adl http ids containe order width

工作中時常需要把EXML代碼中聲明的組件編寫到ts文件中,耗時耗力。

因此編寫一個小工具,自動生成組件聲明代碼。


技術分享


工具代碼如下:

123456789101112131415161718192021222324252627282930313233343536373839404142var fs = require("fs")var readline = require(‘readline‘);var rl = readline.createInterface(process.stdin, process.stdout); var input = ""; rl.question("輸入EXML代碼:", function
() { });rl.on(‘line‘, function (line) { input += "\n" + line;});rl.on(‘close‘, function () { parseEXML(input); process.exit(0);}); //解析EXMLvar parseEXML = function (str) { var fileStr = ""; var linePattern = /\n/g;//獲得每一行代碼 var arr = str.split(linePattern) for (var i in arr) {
var lineStr = arr[i]; var idParrern = / id=\"(.*?)\"/i;//匹配ID var idResult = lineStr.match(idParrern); if (idResult) { var idStr = idResult[1] if (idStr.match(/^\d/)) continue;//數字開頭的ID跳過 var classNameParrern = /:(.*?) /i;//匹配類名 var classNameResult = lineStr.match(classNameParrern);
if (classNameResult[1] == "Config") continue;//Config跳過 var classNameStr = classNameResult[1]; var nameSpaceParrern = /<(.*?):/i;//匹配命名空間 var nameSapceResult = lineStr.match(nameSpaceParrern); var nameSpaceStr = nameSapceResult[1] == "e" ? "eui" : nameSapceResult[1]; fileStr += " private " + idStr + ": " + nameSpaceStr + "." + classNameStr + ";\n"; } } console.log("\n\n\n生成組件聲明代碼:\n") console.log(fileStr);}




null

根據EXML文件,生成組件聲明代碼