Преглед на файлове

chore: 打包增加运行期模块自检

- 打包完成后在包内执行 require('./server/routes/index.js'),缺任何根模块直接失败
- 避免再发出启动即 Cannot find module 的残缺包
liangzhao преди 2 седмици
родител
ревизия
90dfb0d452
променени са 2 файла, в които са добавени 18 реда и са изтрити 0 реда
  1. 11 0
      打包分发.bat
  2. 7 0
      打包分发.command

+ 11 - 0
打包分发.bat

@@ -42,6 +42,17 @@ if /i "%~1"=="--with-data" (
   )
 )
 
+pushd "%OUT%"
+node -e "require('./server/routes/index.js')" >nul 2>nul
+if errorlevel 1 (
+  echo 打包失败:分发包缺少运行期模块,请检查根目录 *.js 是否完整。
+  popd
+  rmdir /s /q "%OUT%"
+  pause
+  exit /b 1
+)
+popd
+
 powershell -NoProfile -Command "Compress-Archive -LiteralPath '%OUT%' -DestinationPath '%ZIP%' -Force"
 if exist "%ZIP%" rmdir /s /q "%OUT%"
 

+ 7 - 0
打包分发.command

@@ -49,6 +49,13 @@ if [ "$WITH_DATA" = "1" ] && [ -f data/ops.db ]; then
   echo "已包含演示数据库:data/ops.db(请确认数据可外发)"
 fi
 
+# 打包前自检:缺任何一个运行期模块都直接失败,避免发出坏包
+if ! ( cd "$OUT" && node -e "require('./server/routes/index.js')" >/dev/null 2>&1 ); then
+  echo "打包失败:分发包缺少运行期模块(请在包目录执行 node -e \"require('./server/routes/index.js')\" 查看具体缺失文件)"
+  rm -rf "$OUT"
+  exit 1
+fi
+
 (
   cd dist || exit 1
   rm -f "$NAME.zip"