qdmp-cli 0.1.19 → 0.1.24

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/api.js CHANGED
@@ -55,13 +55,24 @@ export const request = async (
55
55
  if (response.status === 403) {
56
56
  throw new Error("你没有该小程序的开发权限,请联系管理员开通后重试");
57
57
  }
58
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
58
+
59
+ const responseBody = await response.text();
60
+ let detail = responseBody.trim();
61
+ try {
62
+ const parsedBody = JSON.parse(responseBody);
63
+ detail = parsedBody?.message || parsedBody?.error || detail;
64
+ } catch {
65
+ // 非 JSON 响应直接使用文本内容
66
+ }
67
+
68
+ const status = `HTTP ${response.status}: ${response.statusText}`;
69
+ throw new Error(detail ? `${status} - ${detail}` : status);
59
70
  }
60
71
 
61
72
  const data = await response.json();
62
73
  return data;
63
74
  } catch (error) {
64
- throw new Error(error);
75
+ throw error instanceof Error ? error : new Error(String(error));
65
76
  }
66
77
  };
67
78
 
@@ -194,7 +205,7 @@ export const getAppInfo = async (appId, env = "prod") => {
194
205
  const result = await request("/mp/v1/lookup/app/" + appId, {}, env);
195
206
  return result?.data;
196
207
  } catch (error) {
197
- throw new Error(error?.message);
208
+ throw new Error(`获取应用 ${appId} 失败:${error?.message}`);
198
209
  }
199
210
  };
200
211
  /**
package/package.json CHANGED
@@ -1,44 +1,43 @@
1
1
  {
2
- "name": "qdmp-cli",
3
- "version": "0.1.19",
4
- "description": "qdmp-cli",
5
- "main": "index.js",
6
- "type": "module",
7
- "files": [
8
- "actions.js",
9
- "api.js",
10
- "constants.js",
11
- "index.js",
12
- "npm-shrinkwrap.json",
13
- "utils/"
14
- ],
15
- "scripts": {
16
- "test": "echo \"Error: no test specified\" && exit 1",
17
- "postinstall": "node utils/compilerRuntime.js"
18
- },
19
- "bin": {
20
- "qdmp": "index.js",
21
- "qdmp-cli": "index.js"
22
- },
23
- "keywords": [
24
- "千岛小程序",
25
- "千岛小程序脚手架"
26
- ],
27
- "author": "zhangyanran",
28
- "license": "ISC",
29
- "dependencies": {
30
- "@dimina/compiler": "1.1.1",
31
- "adm-zip": "^0.5.16",
32
- "chalk": "^5.4.1",
33
- "commander": "^14.0.0",
34
- "figlet": "^1.8.1",
35
- "inquirer": "^12.6.3",
36
- "is-unicode-supported": "^2.1.0",
37
- "ora": "^8.2.0",
38
- "shelljs": "^0.10.0",
39
- "table": "^6.9.0"
40
- },
41
- "engines": {
42
- "node": "^22.12.0 || ^24.11.0 || >=26.0.0"
43
- }
44
- }
2
+ "name": "qdmp-cli",
3
+ "version": "0.1.24",
4
+ "description": "qdmp-cli",
5
+ "main": "index.js",
6
+ "type": "module",
7
+ "files": [
8
+ "actions.js",
9
+ "api.js",
10
+ "constants.js",
11
+ "index.js",
12
+ "utils/"
13
+ ],
14
+ "scripts": {
15
+ "test": "node --test",
16
+ "postinstall": "node utils/compilerRuntime.js"
17
+ },
18
+ "bin": {
19
+ "qdmp": "index.js",
20
+ "qdmp-cli": "index.js"
21
+ },
22
+ "keywords": [
23
+ "千岛小程序",
24
+ "千岛小程序脚手架"
25
+ ],
26
+ "author": "zhangyanran",
27
+ "license": "ISC",
28
+ "dependencies": {
29
+ "@dimina/compiler": "1.0.17",
30
+ "adm-zip": "^0.5.16",
31
+ "chalk": "^5.4.1",
32
+ "commander": "^14.0.0",
33
+ "figlet": "^1.8.1",
34
+ "inquirer": "^12.6.3",
35
+ "is-unicode-supported": "^2.1.0",
36
+ "ora": "^8.2.0",
37
+ "shelljs": "^0.10.0",
38
+ "table": "^6.9.0"
39
+ },
40
+ "engines": {
41
+ "node": "^20.19.0 || >=22.12.0"
42
+ }
43
+ }
package/utils/common.js CHANGED
@@ -253,7 +253,15 @@ export async function preUpload(loader, targetName, appId, code) {
253
253
  return false;
254
254
  }
255
255
 
256
- // 3. 压缩项目
256
+ // 3. 复制 qdmp.json 到产物目录
257
+ const qdmpJsonPath = path.resolve(process.cwd(), "qdmp.json");
258
+ if (fs.existsSync(qdmpJsonPath)) {
259
+ const distDir = loader === "EMP" ? "dist" : "h5";
260
+ fs.copyFileSync(qdmpJsonPath, path.join(WORKSPACE_DIR, distDir, "qdmp.json"));
261
+ info("已将 qdmp.json 复制到产物目录");
262
+ }
263
+
264
+ // 4. 压缩项目
257
265
  if (!(await compressProject(targetName, WORKSPACE_DIR, loader, appId))) {
258
266
  error("压缩项目失败");
259
267
  return false;
@@ -263,8 +271,8 @@ export async function preUpload(loader, targetName, appId, code) {
263
271
  const zipFilePath = `./${WORKSPACE_DIR}/${targetName}.zip`;
264
272
  success(`预上传准备完成`);
265
273
  return zipFilePath;
266
- } catch (error) {
267
- error(`预上传过程出错: ${error.message}`);
274
+ } catch (err) {
275
+ error(`预上传过程出错: ${err.message}`);
268
276
  return false;
269
277
  }
270
278
  }
@@ -281,8 +289,8 @@ async function copyAndRenameDistFolder() {
281
289
  }
282
290
 
283
291
  return renameDistFolder(`${WORKSPACE_DIR}/dist`, `${WORKSPACE_DIR}/h5`);
284
- } catch (error) {
285
- error("复制并重命名文件夹过程出错:", error);
292
+ } catch (err) {
293
+ error("复制并重命名文件夹过程出错:", err);
286
294
  return false;
287
295
  }
288
296
  }
@@ -5,16 +5,16 @@ import { fileURLToPath, pathToFileURL } from "node:url";
5
5
  const supportedNodeVersion = (version) => {
6
6
  const [major, minor] = version.split(".").map(Number);
7
7
  return (
8
+ (major === 20 && minor >= 19) ||
8
9
  (major === 22 && minor >= 12) ||
9
- (major === 24 && minor >= 11) ||
10
- major >= 26
10
+ major > 22
11
11
  );
12
12
  };
13
13
 
14
14
  export const assertCompilerRuntime = async (version = process.versions.node) => {
15
15
  if (!supportedNodeVersion(version)) {
16
16
  throw new Error(
17
- `当前 Node.js ${version} 不受 EMP 编译器支持,请先切换到 Node.js 22.12+、24.11+ 或 26+,再重新安装 qdmp-cli`,
17
+ `当前 Node.js ${version} 不受 EMP 编译器支持,请先切换到 Node.js 20.19+ 或 22.12+,再重新安装 qdmp-cli`,
18
18
  );
19
19
  }
20
20