feima-shortcuts 1.0.0 → 1.0.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feima-shortcuts",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "快捷指令",
5
5
  "main": "index.js",
6
6
  "directories": {
@@ -2,9 +2,12 @@ const { Command } = require("commander");
2
2
  const { spawn } = require("child_process");
3
3
  const fs = require("fs");
4
4
  const path = require("path");
5
+ const { deleteFolder } = require("../utils/deleteFolder");
6
+ const { makeDir } = require("../utils/makeDir");
5
7
 
6
8
 
7
- const requestStr = `/**
9
+ const requestStrFun = (baseUrl) => {
10
+ return `/**
8
11
  * 通过 feima generate-api 命令生成
9
12
  * 请勿手动修改此文件
10
13
  */
@@ -29,7 +32,7 @@ export enum CommonHeaderEnum {
29
32
  }
30
33
 
31
34
  const service: any = axios.create({
32
- baseURL: import.meta.env.VITE_API_URL,
35
+ baseURL: \`\${import.meta.env.VITE_API_URL}${baseUrl}\`,
33
36
  timeout: 50000, // 全局超时时间
34
37
  paramsSerializer: {
35
38
  serialize: (params: any) => {
@@ -164,7 +167,8 @@ export const request = <T>(
164
167
  reject(error);
165
168
  });
166
169
  });
167
- };`
170
+ };`;
171
+ };
168
172
 
169
173
 
170
174
  exports.run = () => {
@@ -181,19 +185,38 @@ exports.run = () => {
181
185
  "-o, --output <dir>",
182
186
  "输出目录,默认 src/api",
183
187
  "src/api"
188
+ )
189
+ .option(
190
+ "-bu, --base-url <dir>",
191
+ "基础URL,默认 空",
192
+ ""
184
193
  )
185
194
  .allowUnknownOption(true) // 保持向后兼容,忽略未知参数
186
- .action((opts) => {
195
+ .action(async (opts) => {
187
196
  const input = opts?.input || "http://192.168.0.74:9999/app/v3/api-docs";
188
197
  const output = opts?.output || "src/api";
189
-
198
+ const baseUrl = opts?.baseUrl || "";
190
199
  console.log(`📥 generate-api 输入地址: ${input}`);
191
200
  console.log(`📦 输出目录: ${output}`);
192
201
 
202
+
203
+ // 生成前清空并重建输出目录,避免遗留文件
204
+ try {
205
+ const fullOutputDir = path.resolve(process.cwd(), output);
206
+ if (fs.existsSync(fullOutputDir)) {
207
+ deleteFolder(fullOutputDir);
208
+ }
209
+ makeDir(fullOutputDir);
210
+ console.log("🧹 已清空并初始化输出目录");
211
+ } catch (e) {
212
+ console.error("❌ 初始化输出目录失败:", e.message);
213
+ process.exit(1);
214
+ }
215
+
193
216
  // 确保 ./tmpRequest.ts 使用内置的 requestStr(放在项目根目录)
194
217
  const requestFile = path.resolve(process.cwd(), "tmpRequest.ts");
195
218
  try {
196
- fs.writeFileSync(requestFile, requestStr, "utf8");
219
+ fs.writeFileSync(requestFile, requestStrFun(baseUrl), "utf8");
197
220
  console.log("📝 已写入 ./tmpRequest.ts");
198
221
  } catch (e) {
199
222
  console.error("❌ 写入 ./tmpRequest.ts 失败:", e.message);