Skip to content

Commit b43dfa7

Browse files
author
Training
committed
update
1 parent 26b857c commit b43dfa7

File tree

7 files changed

+467
-277
lines changed

7 files changed

+467
-277
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
/node_modules/
33
.idea
44
/src/
5+
/data

bin/config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version":2,"excludeDir":null,"excludeReg":"((component(s)?)|(utils)|(route(r)?))","excludePath":null,"pagePath":"views","type":"simple"}
1+
{"excludeDir":null,"excludeReg":"((component(s)?)|(utils)|(route(r)?))","excludePath":null,"pagePath":"views","type":"complex"}

bin/index.js

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,14 @@ import {getConfig, getJsonFile, setConfig} from "../comm.js";
77
const __filename = fileURLToPath(import.meta.url); // 当前文件路径
88
const __dirname = path.dirname(__filename); // 当前文件所处的文件夹路径
99
let config = getConfig();
10-
let v = config.version;
1110

1211
program.option("-v,--version","获取版本号")
1312
.description("查看版本号").action(async ()=>{
14-
let pkg = getJsonFile(path.join(__dirname,'../',"package.json"))
15-
console.log(pkg.version)
13+
let pkg = getJsonFile(path.join(__dirname,'../',"package.json"));
1614
})
1715

1816
program.command("set")
19-
.option("-v,--version <version>", "设置vue版本")
17+
// .option("-v,--version <version>", "设置vue版本")
2018
.option("-ed,--excludeDir <excludeDir>", "设置排除目录 , 以;隔开")
2119
.option("-er,--excludeReg <excludeReg>", "设置排除目录,正则字符串(有则优先)")
2220
.option("-ep,--excludePath <excludePath>", "设置排除路径, 以;隔开")
@@ -43,33 +41,38 @@ program.command("render")
4341
.description("手动编译所有路由")
4442
.action(async (params,options)=>{
4543
let model;
46-
switch (v){
47-
case 2:
48-
model = await import("../v2.js");
49-
break
50-
case 3:
44+
switch (config.type){
45+
case "simple":
5146
model = await import("../v3.js");
47+
break
48+
case "complex":
49+
model = await import("../v2.js");
5250
break;
5351
default:
54-
console.log("版本设置错误!");
52+
console.error("[error: render]编译类型设置错误!(simple | complex)");
5553
return;
56-
5754
}
5855
model.renderAll();
5956
// console.log(options);
6057
})
58+
59+
6160
program.command("watch")
6261
.description("路由监听")
6362
.action(async (params,options)=>{
64-
switch (v){
65-
case 2:
66-
v2.watchPages();
63+
let model;
64+
switch (config.type){
65+
case "simple":
66+
model = await import("../v3.js");
6767
break
68-
case 3:
69-
v3.watchPages();
68+
case "complex":
69+
model = await import("../v2.js");
7070
break;
71-
71+
default:
72+
console.error("[error: render]编译类型设置错误!(simple | complex)");
73+
return;
7274
}
75+
model.watchPages();
7376
})
7477
// 这个一定不能忘,且必须在最后!!!
7578
program.parse(process.argv);

comm.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,4 +115,43 @@ export function traverseFolder(dir,callback,result) {
115115
callback(2, 'Traversal complete');
116116
});
117117
}
118+
/**
119+
* @description 深度优先遍历
120+
* @param {Array,JSON} data 数据
121+
* @param callback 回调
122+
* @param options 配置
123+
* @constructor
124+
*/
125+
export function DFS(data, callback = ()=>{}, options = {}) {
126+
let _options = Object.assign({}, {
127+
child: "data"
128+
}, options);
129+
let {
130+
child
131+
} = _options;
132+
if (!!data) {
133+
let stack = [];
134+
if (Array.isArray(data))
135+
for (let i = data.length - 1; i >= 0; i--) {
136+
let item = data[i];
137+
item._tier = 0;
138+
stack.push(item);
139+
}
140+
else if (typeof data === "object") {
141+
data._tier = 0;
142+
stack.push(data);
118143

144+
}
145+
while (stack.length > 0) {
146+
let item = stack.pop();
147+
let tier = item._tier;
148+
tier++;
149+
callback(item);
150+
let children = item[child] || [];
151+
for (let i = children.length - 1; i >= 0; i--) {
152+
children[i]._tier = tier;
153+
stack.push(children[i]);
154+
}
155+
}
156+
}
157+
}

0 commit comments

Comments
 (0)