|
|
@@ -1,10 +1,11 @@
|
|
|
#!/bin/bash
|
|
|
|
|
|
# 配置
|
|
|
-SOURCE_DIR="dist-prod" # 源文件夹
|
|
|
+SOURCE_DIR="dist-prod" # 打包生成的源文件夹
|
|
|
ZIP_NAME="dc.ifoodme.com.zip" # 输出的 ZIP 文件名
|
|
|
TEMP_DIR="/tmp/dc.ifoodme.com" # 临时目录,用于构建目标结构
|
|
|
TARGET_DIR="dc.ifoodme.com" # ZIP 中的目标目录名
|
|
|
+BUILD_CMD="pnpm run build:prod" # 打包命令
|
|
|
|
|
|
# 颜色输出
|
|
|
RED='\033[0;31m'
|
|
|
@@ -18,7 +19,7 @@ command_exists() {
|
|
|
|
|
|
# 检查依赖
|
|
|
check_dependencies() {
|
|
|
- for cmd in zip unzip; do
|
|
|
+ for cmd in pnpm zip unzip; do
|
|
|
if ! command_exists "$cmd"; then
|
|
|
echo -e "${RED}错误:需要安装 $cmd${NC}"
|
|
|
exit 1
|
|
|
@@ -26,6 +27,16 @@ check_dependencies() {
|
|
|
done
|
|
|
}
|
|
|
|
|
|
+# 执行打包
|
|
|
+run_build() {
|
|
|
+ echo "开始执行打包: $BUILD_CMD..."
|
|
|
+ if ! $BUILD_CMD; then
|
|
|
+ echo -e "${RED}打包失败${NC}"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+ echo -e "${GREEN}打包完成${NC}"
|
|
|
+}
|
|
|
+
|
|
|
# 检查源文件夹
|
|
|
check_source() {
|
|
|
if [ ! -d "$SOURCE_DIR" ]; then
|
|
|
@@ -38,9 +49,9 @@ check_source() {
|
|
|
fi
|
|
|
}
|
|
|
|
|
|
-# 打包
|
|
|
+# 打包 ZIP
|
|
|
create_zip() {
|
|
|
- echo "开始打包..."
|
|
|
+ echo "开始打包 ZIP..."
|
|
|
|
|
|
# 创建临时目录并复制文件
|
|
|
mkdir -p "$TEMP_DIR"
|
|
|
@@ -59,6 +70,19 @@ create_zip() {
|
|
|
fi
|
|
|
}
|
|
|
|
|
|
+# 测试解压(可选)
|
|
|
+test_unzip() {
|
|
|
+ echo "测试解压..."
|
|
|
+ mkdir -p test_unzip
|
|
|
+ unzip -o "$ZIP_NAME" -d test_unzip >/dev/null
|
|
|
+ if [ -f "test_unzip/$TARGET_DIR/index.html" ]; then
|
|
|
+ echo -e "${GREEN}解压测试成功:test_unzip/$TARGET_DIR/index.html 存在${NC}"
|
|
|
+ else
|
|
|
+ echo -e "${RED}解压测试失败:未生成正确的目录结构${NC}"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
# 清理
|
|
|
cleanup() {
|
|
|
echo "清理临时文件..."
|
|
|
@@ -69,6 +93,7 @@ cleanup() {
|
|
|
# 主函数
|
|
|
main() {
|
|
|
check_dependencies
|
|
|
+ run_build
|
|
|
check_source
|
|
|
create_zip
|
|
|
cleanup
|