@lark-apaas/coding-template-nestjs-react-fullstack 0.1.58 → 0.1.59-alpha.20261105053050

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.
@@ -28,7 +28,7 @@
28
28
  "upgrade": "npx -y @lark-apaas/fullstack-cli sync --disable-gen-openapi"
29
29
  },
30
30
  "dependencies": {
31
- "@lark-apaas/fullstack-nestjs-core": "^1.1.74",
31
+ "@lark-apaas/fullstack-nestjs-core": "^1.1.70",
32
32
  "@nestjs/axios": "^4.0.1",
33
33
  "@nestjs/cache-manager": "^3.1.3",
34
34
  "@nestjs/common": "^10.4.20",
@@ -52,8 +52,8 @@
52
52
  },
53
53
  "devDependencies": {
54
54
  "@hookform/resolvers": "^5.2.2",
55
- "@lark-apaas/client-toolkit": "^1.2.82",
56
- "@lark-apaas/coding-preset-vite-react": "^1.0.28",
55
+ "@lark-apaas/client-toolkit": "^1.2.78",
56
+ "@lark-apaas/coding-preset-vite-react": "^1.0.27",
57
57
  "@lark-apaas/fullstack-presets": "^1.1.25",
58
58
  "@nestjs/cli": "^10.4.9",
59
59
  "@radix-ui/react-accordion": "^1.2.12",
@@ -45,32 +45,49 @@ STEP_START=$(node -e "console.log(Date.now())")
45
45
 
46
46
  # 在 client/server 构建之前生成到 dist/,供 DefinePlugin 注入前端 bundle
47
47
  # 注意:nest-cli.json 中 deleteOutDir 必须为 false(模板默认值),否则 nest build 会清掉 dist/
48
- echo " ├─ 生成 API 路由定义..."
49
- npx generate-api-routes --server-dir ./server --out-dir ./dist > /tmp/gen-api-routes.log 2>&1 &
50
- API_ROUTES_PID=$!
51
-
52
- echo " ├─ 生成页面路由定义..."
53
- npx generate-page-routes --app-path ./client/src/app.tsx --out-dir ./dist > /tmp/gen-page-routes.log 2>&1 &
54
- PAGE_ROUTES_PID=$!
55
-
56
- API_ROUTES_EXIT=0
57
- PAGE_ROUTES_EXIT=0
58
-
59
- wait $API_ROUTES_PID || API_ROUTES_EXIT=$?
60
- wait $PAGE_ROUTES_PID || PAGE_ROUTES_EXIT=$?
61
-
62
- if [ $API_ROUTES_EXIT -ne 0 ]; then
63
- echo " ⚠️ API 路由生成失败(不影响构建)"
64
- cat /tmp/gen-api-routes.log
48
+ # 生成器来自 @lark-apaas/devtool-kits(由 preset 间接安装)。只用本地命令:
49
+ # 未安装时直接跳过,不走 npx,避免联网查同名包 404 的等待;preset 读不到文件会注入空路由。
50
+ API_ROUTES_BIN="$ROOT_DIR/node_modules/.bin/generate-api-routes"
51
+ PAGE_ROUTES_BIN="$ROOT_DIR/node_modules/.bin/generate-page-routes"
52
+ API_ROUTES_PID=""
53
+ PAGE_ROUTES_PID=""
54
+
55
+ if [ -x "$API_ROUTES_BIN" ]; then
56
+ echo " ├─ 生成 API 路由定义..."
57
+ "$API_ROUTES_BIN" --server-dir ./server --out-dir ./dist > /tmp/gen-api-routes.log 2>&1 &
58
+ API_ROUTES_PID=$!
65
59
  else
66
- echo " ✅ API 路由生成完成"
60
+ echo " ⏭️ 未安装 generate-api-routes,跳过 API 路由定义生成"
67
61
  fi
68
62
 
69
- if [ $PAGE_ROUTES_EXIT -ne 0 ]; then
70
- echo " ⚠️ 页面路由生成失败(不影响构建)"
71
- cat /tmp/gen-page-routes.log
63
+ if [ -x "$PAGE_ROUTES_BIN" ]; then
64
+ echo " ├─ 生成页面路由定义..."
65
+ "$PAGE_ROUTES_BIN" --app-path ./client/src/app.tsx --out-dir ./dist > /tmp/gen-page-routes.log 2>&1 &
66
+ PAGE_ROUTES_PID=$!
72
67
  else
73
- echo " ✅ 页面路由生成完成"
68
+ echo " ⏭️ 未安装 generate-page-routes,跳过页面路由定义生成"
69
+ fi
70
+
71
+ if [ -n "$API_ROUTES_PID" ]; then
72
+ API_ROUTES_EXIT=0
73
+ wait $API_ROUTES_PID || API_ROUTES_EXIT=$?
74
+ if [ $API_ROUTES_EXIT -ne 0 ]; then
75
+ echo " ⚠️ API 路由生成失败(不影响构建)"
76
+ cat /tmp/gen-api-routes.log
77
+ else
78
+ echo " ✅ API 路由生成完成"
79
+ fi
80
+ fi
81
+
82
+ if [ -n "$PAGE_ROUTES_PID" ]; then
83
+ PAGE_ROUTES_EXIT=0
84
+ wait $PAGE_ROUTES_PID || PAGE_ROUTES_EXIT=$?
85
+ if [ $PAGE_ROUTES_EXIT -ne 0 ]; then
86
+ echo " ⚠️ 页面路由生成失败(不影响构建)"
87
+ cat /tmp/gen-page-routes.log
88
+ else
89
+ echo " ✅ 页面路由生成完成"
90
+ fi
74
91
  fi
75
92
  print_time $STEP_START
76
93
  echo ""
@@ -1,9 +1,28 @@
1
1
  #!/usr/bin/env node
2
2
  // This file is auto-generated by @lark-apaas/fullstack-cli
3
3
 
4
- const { nodeFileTrace } = require('@vercel/nft');
5
4
  const fs = require('fs');
6
5
  const path = require('path');
6
+ const { createRequire } = require('module');
7
+
8
+ // @vercel/nft 是 fullstack-cli 自身的依赖:应用装了 CLI 时从应用 node_modules 加载;
9
+ // 构建镜像全局预装 CLI、应用未安装时,从 PATH 上 fullstack-cli 的安装目录加载
10
+ function loadNft() {
11
+ try {
12
+ return require('@vercel/nft');
13
+ } catch (err) {
14
+ if (err.code !== 'MODULE_NOT_FOUND') throw err;
15
+ }
16
+ for (const dir of (process.env.PATH || '').split(path.delimiter)) {
17
+ const cliBin = dir && path.join(dir, 'fullstack-cli');
18
+ if (cliBin && fs.existsSync(cliBin)) {
19
+ return createRequire(fs.realpathSync(cliBin))('@vercel/nft');
20
+ }
21
+ }
22
+ throw new Error('未找到 @vercel/nft:应用未安装 fullstack-cli,PATH 上也没有全局 fullstack-cli');
23
+ }
24
+
25
+ const { nodeFileTrace } = loadNft();
7
26
 
8
27
  const ROOT_DIR = path.resolve(__dirname, '..');
9
28