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"
|
rm -f "$ZIP_FILE"
|
||||||
cd "$PARENT_DIR"
|
cd "$PARENT_DIR"
|
||||||
|
|
||||||
# 先统计文件总数
|
# 需要排除的目录:依赖、编译产物、缓存(减小备份体积)
|
||||||
TOTAL_FILES=$(find "$PROJECT_NAME" -not -path "${PROJECT_NAME}/.git/*" -type f | wc -l | tr -d ' ')
|
ZIP_EXCLUDES=(
|
||||||
echo " 📊 共 ${TOTAL_FILES} 个文件"
|
"${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
|
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))
|
COUNTER=$((COUNTER + 1))
|
||||||
PCT=$((COUNTER * 100 / TOTAL_FILES))
|
PCT=$((COUNTER * 100 / TOTAL_FILES))
|
||||||
if [ $PCT -gt 100 ]; then PCT=100; fi
|
if [ $PCT -gt 100 ]; then PCT=100; fi
|
||||||
|
|||||||
Reference in New Issue
Block a user