@lark-apaas/fullstack-cli 1.1.37 → 1.1.39

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": "@lark-apaas/fullstack-cli",
3
- "version": "1.1.37",
3
+ "version": "1.1.39",
4
4
  "description": "CLI tool for fullstack template management",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -56,6 +56,5 @@
56
56
  },
57
57
  "peerDependencies": {
58
58
  "typescript": "^5.9.2"
59
- },
60
- "migrationVersion": 1
59
+ }
61
60
  }
@@ -19,32 +19,69 @@ print_time() {
19
19
  }
20
20
 
21
21
  # ==================== 步骤 0 ====================
22
- echo "🗑️ [0/5] 安装插件"
22
+ echo "🗑️ [0/6] 安装插件"
23
23
  STEP_START=$(node -e "console.log(Date.now())")
24
24
  npx fullstack-cli action-plugin init
25
25
  print_time $STEP_START
26
26
  echo ""
27
27
 
28
28
  # ==================== 步骤 1 ====================
29
- echo "📝 [1/5] 更新 openapi 代码"
29
+ echo "📝 [1/6] 更新 openapi 代码"
30
30
  STEP_START=$(node -e "console.log(Date.now())")
31
31
  npm run gen:openapi
32
32
  print_time $STEP_START
33
33
  echo ""
34
34
 
35
35
  # ==================== 步骤 2 ====================
36
- echo "🗑️ [2/5] 清理 dist 目录"
36
+ echo "🗑️ [2/6] 清理 dist 目录"
37
37
  STEP_START=$(node -e "console.log(Date.now())")
38
38
  rm -rf "$ROOT_DIR/dist"
39
39
  print_time $STEP_START
40
40
  echo ""
41
41
 
42
42
  # ==================== 步骤 3 ====================
43
+ echo "🗺️ [3/6] 生成路由定义"
44
+ STEP_START=$(node -e "console.log(Date.now())")
45
+
46
+ # 在 client/server 构建之前生成到 dist/,供 DefinePlugin 注入前端 bundle
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
65
+ else
66
+ echo " ✅ API 路由生成完成"
67
+ fi
68
+
69
+ if [ $PAGE_ROUTES_EXIT -ne 0 ]; then
70
+ echo " ⚠️ 页面路由生成失败(不影响构建)"
71
+ cat /tmp/gen-page-routes.log
72
+ else
73
+ echo " ✅ 页面路由生成完成"
74
+ fi
75
+ print_time $STEP_START
76
+ echo ""
77
+
78
+ # ==================== 步骤 4 ====================
79
+ echo "🔨 [4/6] 并行构建 server 和 client"
43
80
  STEP_START=$(node -e "console.log(Date.now())")
44
81
 
45
82
  # 根据 only_frontend_change 决定是否构建 server
46
83
  if [[ "${only_frontend_change:-false}" == "true" ]]; then
47
- echo "🔨 [3/5] 仅构建 client (only_frontend_change=true)"
84
+ echo "🔨 [4/6] 仅构建 client (only_frontend_change=true)"
48
85
 
49
86
  echo " ├─ 启动 client 构建..."
50
87
  npm run build:client > /tmp/build-client.log 2>&1
@@ -58,7 +95,7 @@ if [[ "${only_frontend_change:-false}" == "true" ]]; then
58
95
 
59
96
  echo " ✅ Client 构建完成"
60
97
  else
61
- echo "🔨 [3/5] 并行构建 server 和 client"
98
+ echo "🔨 [4/6] 并行构建 server 和 client"
62
99
 
63
100
  # 并行构建
64
101
  echo " ├─ 启动 server 构建..."
@@ -96,15 +133,15 @@ fi
96
133
  print_time $STEP_START
97
134
  echo ""
98
135
 
99
- # ==================== 步骤 4 ====================
100
- echo "📦 [4/5] 准备产物"
136
+ # ==================== 步骤 5 ====================
137
+ echo "📦 [5/6] 准备产物"
101
138
  STEP_START=$(node -e "console.log(Date.now())")
102
139
 
103
140
  # 移动 client 下的 HTML 文件到 dist/dist/client,保证 views 路径在 dev/prod 下一致
104
- # HTML 文件属于前端产物,始终执行
141
+ # 使用 mv 而非 cp:HTML 不能上传到公网 CDN,移走后 dist/client 中不再包含 HTML
105
142
  if [ -d "$DIST_DIR/client" ]; then
106
143
  mkdir -p "$DIST_DIR/dist/client"
107
- find "$DIST_DIR/client" -maxdepth 1 -name "*.html" -exec cp {} "$DIST_DIR/dist/client/" \;
144
+ find "$DIST_DIR/client" -maxdepth 1 -name "*.html" -exec mv {} "$DIST_DIR/dist/client/" \;
108
145
  fi
109
146
 
110
147
  # server 相关产物准备(only_frontend_change=true 时跳过)
@@ -127,14 +164,15 @@ rm -rf "$DIST_DIR/tsconfig.node.tsbuildinfo"
127
164
  print_time $STEP_START
128
165
  echo ""
129
166
 
130
- # ==================== 步骤 5 ====================
167
+ # ==================== 步骤 6 ====================
168
+ echo "✂️ [6/6] 智能依赖裁剪"
131
169
  STEP_START=$(node -e "console.log(Date.now())")
132
170
 
133
171
  # 智能依赖裁剪(仅全量构建时执行,纯前端场景不打包 server,无需裁剪)
134
172
  if [[ "${only_frontend_change:-false}" == "true" ]]; then
135
- echo "✂️ [5/5] 跳过智能依赖裁剪 (only_frontend_change=true)"
173
+ echo "✂️ [6/6] 跳过智能依赖裁剪 (only_frontend_change=true)"
136
174
  else
137
- echo "✂️ [5/5] 智能依赖裁剪"
175
+ echo "✂️ [6/6] 智能依赖裁剪"
138
176
 
139
177
  # 分析实际依赖、复制并裁剪 node_modules、生成精简的 package.json
140
178
  node "$ROOT_DIR/scripts/prune-smart.js"