chore(backup): 打包时排除依赖/编译产物/缓存
排除 node_modules、dist、.next、.cache、.turbo、coverage 等, find 计数与 zip -x 规则保持一致以保证进度条准确,大幅减小备份体积。
This commit is contained in:
+18
-4
@@ -46,13 +46,27 @@ echo "[1/5] 📦 打包项目文件..."
|
||||
rm -f "$ZIP_FILE"
|
||||
cd "$PARENT_DIR"
|
||||
|
||||
# 先统计文件总数
|
||||
TOTAL_FILES=$(find "$PROJECT_NAME" -not -path "${PROJECT_NAME}/.git/*" -type f | wc -l | tr -d ' ')
|
||||
echo " 📊 共 ${TOTAL_FILES} 个文件"
|
||||
# 需要排除的目录:依赖、编译产物、缓存(减小备份体积)
|
||||
ZIP_EXCLUDES=(
|
||||
"${PROJECT_NAME}/.git/*"
|
||||
"*/node_modules/*"
|
||||
"*/.next/*"
|
||||
"*/dist/*"
|
||||
"*/.cache/*"
|
||||
"*/.turbo/*"
|
||||
"*/coverage/*"
|
||||
"*.DS_Store"
|
||||
)
|
||||
|
||||
# 先统计文件总数(与上面的排除规则保持一致,保证进度条准确)
|
||||
TOTAL_FILES=$(find "$PROJECT_NAME" \
|
||||
-type d \( -name node_modules -o -name .git -o -name .next -o -name dist -o -name .cache -o -name .turbo -o -name coverage \) -prune \
|
||||
-o -type f -print | wc -l | tr -d ' ')
|
||||
echo " 📊 共 ${TOTAL_FILES} 个文件(已排除依赖/编译/缓存)"
|
||||
|
||||
# 打包并实时显示百分比
|
||||
COUNTER=0
|
||||
zip -r "$ZIP_FILE" "$PROJECT_NAME" -x "${PROJECT_NAME}/.git/*" 2>&1 | while IFS= read -r line; do
|
||||
zip -r "$ZIP_FILE" "$PROJECT_NAME" -x "${ZIP_EXCLUDES[@]}" 2>&1 | while IFS= read -r line; do
|
||||
COUNTER=$((COUNTER + 1))
|
||||
PCT=$((COUNTER * 100 / TOTAL_FILES))
|
||||
if [ $PCT -gt 100 ]; then PCT=100; fi
|
||||
|
||||
Reference in New Issue
Block a user