ol-base-components 3.5.0 → 3.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +50 -58
- package/dist/index.umd.js +10 -10
- package/package.json +1 -1
- package/src/api/init.js +108 -26
package/package.json
CHANGED
package/src/api/init.js
CHANGED
|
@@ -1,34 +1,73 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// 就是执行api.js和run.js脚本 npx init http://xxxx
|
|
3
2
|
const { spawn } = require("child_process");
|
|
4
3
|
const path = require("path");
|
|
4
|
+
const fs = require("fs");
|
|
5
5
|
|
|
6
|
-
//
|
|
7
|
-
|
|
6
|
+
// 获取命令行参数
|
|
7
|
+
let swaggerUrl = process.argv[2];
|
|
8
|
+
|
|
9
|
+
// 提取 baseURL 的函数
|
|
10
|
+
// 目录结构
|
|
11
|
+
// ├── public
|
|
12
|
+
// │ ├── configBaseUrl.js
|
|
13
|
+
// window.global_config = {
|
|
14
|
+
// // baseURL: "http://220.179.227.4:20040",
|
|
15
|
+
// baseURL: "http://192.168.101.113:6005",
|
|
16
|
+
// swaggerUrl: "/ctc",
|
|
17
|
+
// };
|
|
18
|
+
async function extractSwaggerUrl() {
|
|
19
|
+
const configPath = path.join(process.cwd(), "public", "configBaseUrl.js");
|
|
20
|
+
|
|
21
|
+
if (!fs.existsSync(configPath)) {
|
|
22
|
+
console.error("\n❌ 错误: 找不到 configBaseUrl.js 文件");
|
|
23
|
+
console.error(`路径: ${configPath}`);
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
try {
|
|
28
|
+
const configContent = fs.readFileSync(configPath, "utf8");
|
|
29
|
+
// 使用正则表达式提取 baseURL(排除注释行,支持缩进)
|
|
30
|
+
const baseURLMatch = configContent.match(/^\s*[^\/]*baseURL:\s*["']([^"']+)["']/m);
|
|
31
|
+
|
|
32
|
+
if (!baseURLMatch) {
|
|
33
|
+
console.error("\n❌ 错误: 无法从 configBaseUrl.js 中提取 baseURL");
|
|
34
|
+
console.error("请确保配置文件中有类似这样的配置:");
|
|
35
|
+
console.error(" window.config = { baseURL: 'http://your-swagger-url' }");
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const baseURL = baseURLMatch[1] || "";
|
|
40
|
+
if (!baseURL) {
|
|
41
|
+
console.error("\n❌ 错误: baseURL 为空");
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return baseURL;
|
|
46
|
+
} catch (err) {
|
|
47
|
+
console.error("\n❌ 读取配置文件失败:", err.message);
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
8
51
|
|
|
9
52
|
// 执行 api.js 脚本
|
|
10
53
|
function runApiScript() {
|
|
11
54
|
return new Promise((resolve, reject) => {
|
|
12
55
|
console.log("📝 正在执行 swagger 脚本...");
|
|
13
56
|
|
|
14
|
-
const apiProcess = spawn(
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
{
|
|
18
|
-
stdio: "inherit",
|
|
19
|
-
}
|
|
20
|
-
);
|
|
57
|
+
const apiProcess = spawn("node", [path.join(__dirname, "api.js"), swaggerUrl], {
|
|
58
|
+
stdio: "inherit",
|
|
59
|
+
});
|
|
21
60
|
|
|
22
|
-
apiProcess.on("close",
|
|
61
|
+
apiProcess.on("close", code => {
|
|
23
62
|
if (code === 0) {
|
|
24
|
-
console.log("✅ swagger
|
|
63
|
+
console.log("✅ swagger脚本执行完成");
|
|
25
64
|
resolve();
|
|
26
65
|
} else {
|
|
27
66
|
reject(new Error(`swagger 脚本执行失败,退出码: ${code}`));
|
|
28
67
|
}
|
|
29
68
|
});
|
|
30
69
|
|
|
31
|
-
apiProcess.on("error",
|
|
70
|
+
apiProcess.on("error", err => {
|
|
32
71
|
reject(new Error(`执行 swagger 时出错: ${err.message}`));
|
|
33
72
|
});
|
|
34
73
|
});
|
|
@@ -39,39 +78,82 @@ function runRunScript() {
|
|
|
39
78
|
return new Promise((resolve, reject) => {
|
|
40
79
|
console.log("🔧 正在执行 接口 脚本...");
|
|
41
80
|
|
|
42
|
-
const runProcess = spawn(
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
{
|
|
46
|
-
stdio: "inherit",
|
|
47
|
-
}
|
|
48
|
-
);
|
|
81
|
+
const runProcess = spawn("node", [path.join(__dirname, "run.js"), swaggerUrl], {
|
|
82
|
+
stdio: "inherit",
|
|
83
|
+
});
|
|
49
84
|
|
|
50
|
-
runProcess.on("close",
|
|
85
|
+
runProcess.on("close", code => {
|
|
51
86
|
if (code === 0) {
|
|
52
|
-
console.log("✅
|
|
87
|
+
console.log("✅ 接口脚本执行完成");
|
|
53
88
|
resolve();
|
|
54
89
|
} else {
|
|
55
|
-
reject(new Error(
|
|
90
|
+
reject(new Error(`接口脚本执行失败,退出码: ${code}`));
|
|
56
91
|
}
|
|
57
92
|
});
|
|
58
93
|
|
|
59
|
-
runProcess.on("error",
|
|
94
|
+
runProcess.on("error", err => {
|
|
60
95
|
reject(new Error(`执行 接口 时出错: ${err.message}`));
|
|
61
96
|
});
|
|
62
97
|
});
|
|
63
98
|
}
|
|
64
99
|
|
|
100
|
+
// 执行 fetch-swagger.js 脚本
|
|
101
|
+
function runFetchSwaggerScript() {
|
|
102
|
+
return new Promise((resolve, reject) => {
|
|
103
|
+
console.log("📥 正在下载 swagger.json...");
|
|
104
|
+
|
|
105
|
+
const fetchProcess = spawn("node", [path.join(__dirname, "../bin/fetch-swagger.js")], {
|
|
106
|
+
stdio: "inherit",
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
fetchProcess.on("close", code => {
|
|
110
|
+
if (code === 0) {
|
|
111
|
+
console.log("✅ swagger.json 下载完成");
|
|
112
|
+
resolve();
|
|
113
|
+
} else {
|
|
114
|
+
reject(new Error(`swagger.json 下载失败,退出码: ${code}`));
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
fetchProcess.on("error", err => {
|
|
119
|
+
reject(new Error(`执行 fetch-swagger 时出错: ${err.message}`));
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
|
|
65
124
|
// 主执行函数
|
|
66
125
|
async function main() {
|
|
67
126
|
try {
|
|
127
|
+
// 如果命令行没有传参,尝试从配置文件提取
|
|
128
|
+
if (!swaggerUrl) {
|
|
129
|
+
console.log("🔍 未指定 URL,正在从 configBaseUrl.js 自动检测...");
|
|
130
|
+
const extractedUrl = await extractSwaggerUrl();
|
|
131
|
+
if (extractedUrl) {
|
|
132
|
+
swaggerUrl = extractedUrl;
|
|
133
|
+
console.log(`✨ 自动检测到 baseURL: ${swaggerUrl}`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// 检查是否有有效的 URL
|
|
138
|
+
if (!swaggerUrl) {
|
|
139
|
+
console.error("\n❌ 错误: 无法获取有效的 swagger URL");
|
|
140
|
+
console.error("请手动指定 URL,用法:");
|
|
141
|
+
console.error(" npx ol-base-components init http://your-swagger-url");
|
|
142
|
+
process.exit(1);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
console.log(`\n🚀 开始初始化,URL: ${swaggerUrl}`);
|
|
146
|
+
|
|
68
147
|
// 先执行 api.js
|
|
69
148
|
await runApiScript();
|
|
70
149
|
|
|
71
150
|
// 再执行 run.js
|
|
72
151
|
await runRunScript();
|
|
73
152
|
|
|
74
|
-
|
|
153
|
+
// 最后执行 fetch-swagger.js 下载 swagger.json
|
|
154
|
+
await runFetchSwaggerScript();
|
|
155
|
+
|
|
156
|
+
console.log("\n🎉 所有脚本执行完成!");
|
|
75
157
|
} catch (error) {
|
|
76
158
|
console.error("❌ 执行过程中出现错误:", error.message);
|
|
77
159
|
process.exit(1);
|
|
@@ -79,4 +161,4 @@ async function main() {
|
|
|
79
161
|
}
|
|
80
162
|
|
|
81
163
|
// 执行主函数
|
|
82
|
-
main();
|
|
164
|
+
main();
|