@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 +2 -2
- package/templates/scripts/build.sh +85 -47
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lark-apaas/fullstack-cli",
|
|
3
|
-
"version": "1.1.
|
|
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.
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
#
|
|
110
|
-
|
|
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
|
-
|
|
122
|
-
echo ""
|
|
123
|
-
echo "📊 构建产物统计:"
|
|
124
|
-
echo " 产物大小: $DIST_SIZE"
|
|
125
|
-
echo "
|
|
126
|
-
|
|
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
|