@lark-apaas/fullstack-cli 1.1.33 → 1.1.34-alpha.0

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.33",
3
+ "version": "1.1.34-alpha.0",
4
4
  "description": "CLI tool for fullstack template management",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -52,7 +52,7 @@
52
52
  "@types/node": "^22.0.0",
53
53
  "tsup": "^8.3.5",
54
54
  "typescript": "^5.9.2",
55
- "vitest": "^2.1.8"
55
+ "vitest": "^3.2.4"
56
56
  },
57
57
  "peerDependencies": {
58
58
  "typescript": "^5.9.2"
@@ -40,40 +40,59 @@ print_time $STEP_START
40
40
  echo ""
41
41
 
42
42
  # ==================== 步骤 3 ====================
43
- echo "🔨 [3/5] 并行构建 server 和 client"
44
43
  STEP_START=$(node -e "console.log(Date.now())")
45
44
 
46
- # 并行构建
47
- echo " ├─ 启动 server 构建..."
48
- npm run build:server > /tmp/build-server.log 2>&1 &
49
- SERVER_PID=$!
50
-
51
- echo " ├─ 启动 client 构建..."
52
- npm run build:client > /tmp/build-client.log 2>&1 &
53
- CLIENT_PID=$!
54
-
55
- # 等待两个构建完成
56
- SERVER_EXIT=0
57
- CLIENT_EXIT=0
58
-
59
- wait $SERVER_PID || SERVER_EXIT=$?
60
- wait $CLIENT_PID || CLIENT_EXIT=$?
61
-
62
- # 检查构建结果
63
- if [ $SERVER_EXIT -ne 0 ]; then
64
- echo " ❌ Server 构建失败"
65
- cat /tmp/build-server.log
66
- exit 1
45
+ # 根据 deploy_faas 决定是否构建 server
46
+ if [[ "${deploy_faas:-true}" == "false" ]]; then
47
+ echo "🔨 [3/5] 仅构建 client (deploy_faas=false)"
48
+
49
+ echo " ├─ 启动 client 构建..."
50
+ npm run build:client > /tmp/build-client.log 2>&1
51
+ CLIENT_EXIT=$?
52
+
53
+ if [ $CLIENT_EXIT -ne 0 ]; then
54
+ echo " ❌ Client 构建失败"
55
+ cat /tmp/build-client.log
56
+ exit 1
57
+ fi
58
+
59
+ echo " ✅ Client 构建完成"
60
+ else
61
+ echo "🔨 [3/5] 并行构建 server 和 client"
62
+
63
+ # 并行构建
64
+ echo " ├─ 启动 server 构建..."
65
+ npm run build:server > /tmp/build-server.log 2>&1 &
66
+ SERVER_PID=$!
67
+
68
+ echo " ├─ 启动 client 构建..."
69
+ npm run build:client > /tmp/build-client.log 2>&1 &
70
+ CLIENT_PID=$!
71
+
72
+ # 等待两个构建完成
73
+ SERVER_EXIT=0
74
+ CLIENT_EXIT=0
75
+
76
+ wait $SERVER_PID || SERVER_EXIT=$?
77
+ wait $CLIENT_PID || CLIENT_EXIT=$?
78
+
79
+ # 检查构建结果
80
+ if [ $SERVER_EXIT -ne 0 ]; then
81
+ echo " ❌ Server 构建失败"
82
+ cat /tmp/build-server.log
83
+ exit 1
84
+ fi
85
+
86
+ if [ $CLIENT_EXIT -ne 0 ]; then
87
+ echo " ❌ Client 构建失败"
88
+ cat /tmp/build-client.log
89
+ exit 1
90
+ fi
91
+
92
+ echo " ✅ Server 构建完成"
93
+ echo " ✅ Client 构建完成"
67
94
  fi
68
95
 
69
- if [ $CLIENT_EXIT -ne 0 ]; then
70
- echo " ❌ Client 构建失败"
71
- cat /tmp/build-client.log
72
- exit 1
73
- fi
74
-
75
- echo " ✅ Server 构建完成"
76
- echo " ✅ Client 构建完成"
77
96
  print_time $STEP_START
78
97
  echo ""
79
98
 
@@ -81,20 +100,26 @@ echo ""
81
100
  echo "📦 [4/5] 准备产物"
82
101
  STEP_START=$(node -e "console.log(Date.now())")
83
102
 
84
- # 拷贝 run.sh 到 dist/(prod 从 dist/ 启动,确保 cwd 一致性)
85
- cp "$ROOT_DIR/scripts/run.sh" "$DIST_DIR/"
86
-
87
- # 拷贝 .env 文件(如果存在)
88
- if [ -f "$ROOT_DIR/.env" ]; then
89
- cp "$ROOT_DIR/.env" "$DIST_DIR/"
90
- fi
91
-
92
103
  # 移动 client 下的 HTML 文件到 dist/dist/client,保证 views 路径在 dev/prod 下一致
104
+ # HTML 文件属于前端产物,始终执行
93
105
  if [ -d "$DIST_DIR/client" ]; then
94
106
  mkdir -p "$DIST_DIR/dist/client"
95
107
  find "$DIST_DIR/client" -maxdepth 1 -name "*.html" -exec mv {} "$DIST_DIR/dist/client/" \;
96
108
  fi
97
109
 
110
+ # server 相关产物准备(deploy_faas=false 时跳过)
111
+ if [[ "${deploy_faas:-true}" == "false" ]]; then
112
+ echo " [skip] 跳过 run.sh/.env 复制 (deploy_faas=false)"
113
+ else
114
+ # 拷贝 run.sh 到 dist/(prod 从 dist/ 启动,确保 cwd 一致性)
115
+ cp "$ROOT_DIR/scripts/run.sh" "$DIST_DIR/"
116
+
117
+ # 拷贝 .env 文件(如果存在)
118
+ if [ -f "$ROOT_DIR/.env" ]; then
119
+ cp "$ROOT_DIR/.env" "$DIST_DIR/"
120
+ fi
121
+ fi
122
+
98
123
  # 清理无用文件
99
124
  rm -rf "$DIST_DIR/scripts"
100
125
  rm -rf "$DIST_DIR/tsconfig.node.tsbuildinfo"
@@ -103,11 +128,17 @@ print_time $STEP_START
103
128
  echo ""
104
129
 
105
130
  # ==================== 步骤 5 ====================
106
- echo "✂️ [5/5] 智能依赖裁剪"
107
131
  STEP_START=$(node -e "console.log(Date.now())")
108
132
 
109
- # 分析实际依赖、复制并裁剪 node_modules、生成精简的 package.json
110
- node "$ROOT_DIR/scripts/prune-smart.js"
133
+ # 智能依赖裁剪(仅全量构建时执行,纯前端场景不打包 server,无需裁剪)
134
+ if [[ "${deploy_faas:-true}" == "false" ]]; then
135
+ echo "✂️ [5/5] 跳过智能依赖裁剪 (deploy_faas=false)"
136
+ else
137
+ echo "✂️ [5/5] 智能依赖裁剪"
138
+
139
+ # 分析实际依赖、复制并裁剪 node_modules、生成精简的 package.json
140
+ node "$ROOT_DIR/scripts/prune-smart.js"
141
+ fi
111
142
 
112
143
  print_time $STEP_START
113
144
  echo ""
@@ -118,9 +149,16 @@ print_time $TOTAL_START
118
149
 
119
150
  # 输出产物信息
120
151
  DIST_SIZE=$(du -sh "$DIST_DIR" | cut -f1)
121
- NODE_MODULES_SIZE=$(du -sh "$DIST_DIR/node_modules" | cut -f1)
122
- echo ""
123
- echo "📊 构建产物统计:"
124
- echo " 产物大小: $DIST_SIZE"
125
- echo " node_modules: $NODE_MODULES_SIZE"
126
- echo ""
152
+ if [[ "${deploy_faas:-true}" == "false" ]]; then
153
+ echo ""
154
+ echo "📊 构建产物统计:"
155
+ echo " 产物大小: $DIST_SIZE"
156
+ echo ""
157
+ else
158
+ NODE_MODULES_SIZE=$(du -sh "$DIST_DIR/node_modules" | cut -f1)
159
+ echo ""
160
+ echo "📊 构建产物统计:"
161
+ echo " 产物大小: $DIST_SIZE"
162
+ echo " node_modules: $NODE_MODULES_SIZE"
163
+ echo ""
164
+ fi