Przeglądaj źródła

📦 修改更新脚本

imengyu 3 tygodni temu
rodzic
commit
b0818941b7

+ 5 - 0
src/scripts/UpdateScript/postConfig.mjs

@@ -29,6 +29,11 @@ export const config = {
   },
   buildWebCommand: 'npm run nuxt-build', //构建命令
   buildWebOutDir: '../../../.output', //构建输出目录。相对于当前文件目录
+  buildWebOptions: {
+    skipFiles: [
+      'server/node_modules',
+    ],
+  },
   buildWebOutVersionPath: '', //版本号输出目录,输出版本号至文件以供项目使用。相对于当前文件目录
   /**
    * 自定义生成Web版本号的方法。

+ 20 - 7
src/scripts/UpdateScript/postUpdate.mjs

@@ -310,6 +310,13 @@ export async function postWebUpdate(axiosInstance, param) {
   }
 
   const outputPath = __dirname + '/upload.zip';
+  const skipFiles = config?.buildWebOptions?.skipFiles ?? [];
+
+  function checkPathSkip(path) {
+    if (!skipFiles || skipFiles.length === 0)
+      return;
+    return skipFiles.find((item) => path.startsWith(item));
+  }
 
   if (!skipBuild) {
     console.log('开始压缩zip...');
@@ -320,15 +327,21 @@ export async function postWebUpdate(axiosInstance, param) {
     });
     archive.pipe(output);
 
-    const files = await readdir(distDir);
-    for (const file of files) {
-      const filestat = await stat(distDir + '/' + file);
-      if (filestat.isDirectory()) {
-        archive.directory(distDir + '/' + file, file);
-      } else {
-        archive.file(distDir + '/' + file, { name: file });
+    async function loopDir(path, subPrefix) {
+      const files = await readdir(path);
+      for (const file of files) {
+        const subPath = subPrefix + '/' + file;
+        if (checkPathSkip(subPath))
+          continue;
+        const filestat = await stat(path + subPath);
+        if (filestat.isDirectory()) {
+          await loopDir(distDir + subPath, subPath);
+        } else {
+          archive.file(distDir + subPath, { name: file });
+        }
       }
     }
+    await loopDir(distDir, '')
 
     console.log('等待压缩zip...');