ZaiZai 2 роки тому
батько
коміт
29e0530105
4 змінених файлів з 68 додано та 5 видалено
  1. 18 0
      README.md
  2. 2 1
      package.json
  3. 9 4
      scripts/build.js
  4. 39 0
      scripts/public.js

+ 18 - 0
README.md

@@ -61,3 +61,21 @@ yarn add -D 依赖名
 yarn upgrade-interactive --latest
 ```
 
+---
+
+### 打包说明
+
+#### 一键全打包
+
+`node:build` 为一键打包为zip的方式
+
+
+#### 缺省打包
+
+`build:nopublic` 为不包含 `/public/gui.mp4` 文件,以及 `/public/plugins`文件夹,的打包方式,减少每次打包后的体积过大的问题。
+
+但是如果此相关文件有变动,需要使用 `node:build` 方式打包
+
+一般来说,`/public/gui.mp4` 和 `/public/plugins` 很少出现变动的情况。
+
+在服务器上更新时,请注意,不要删除服务器上存在的 `gui.mp4` 和 `plugins`,否则会出现异常。

+ 2 - 1
package.json

@@ -5,7 +5,8 @@
     "scripts": {
         "dev": "vite",
         "build": "vite build",
-        "node:build": "node ./scripts/build.js && vite build && node ./scripts/restore.js && node ./scripts/zip.js"
+        "node:build": "node ./scripts/build.js && vite build && node ./scripts/restore.js && node ./scripts/zip.js",
+        "build:nopublic": "node ./scripts/build.js && vite build && node ./scripts/restore.js && node ./scripts/public.js && node ./scripts/zip.js"
     },
     "dependencies": {
         "axios": "^1.4.0",

+ 9 - 4
scripts/build.js

@@ -19,10 +19,15 @@ console.log(`获取当前的配置文件...`)
 const indexJsonPath = path.join(currentDirectory, 'src/config/index.json');
 const indexJsonContent = fs.readFileSync(indexJsonPath, 'utf8');
 
-//创建缓存文件
-console.log(`创建配置缓存文件...`)
-const cacheJsonPath = path.join(currentDirectory, 'scripts/cache.json');
-fs.writeFileSync(cacheJsonPath, indexJsonContent, 'utf8');
+// 检测上次打包异常中断的缓存文件是否存在
+console.log(`检测上次打包异常中断的缓存文件是否存在...`)
+const cacheFilePath = path.join(currentDirectory, 'scripts/cache.json');
+if(!fs.existsSync(cacheFilePath)) {
+    //创建缓存文件
+    console.log(`创建配置缓存文件...`)
+    const cacheJsonPath = path.join(currentDirectory, 'scripts/cache.json');
+    fs.writeFileSync(cacheJsonPath, indexJsonContent, 'utf8');
+}
 
 //修改配置文件
 console.log(`修改配置文件为生产环境的配置...`)

+ 39 - 0
scripts/public.js

@@ -0,0 +1,39 @@
+const path = require('path');
+const fs = require('fs');
+
+// 获取当前命令行上下文路径
+const currentDirectory = process.cwd();
+
+console.log(`----------------------------`)
+console.log(`项目编译打包完成,准备移除非必要的文件...`)
+
+console.log(`准备移除非必要的 /dist/gui.mp4 文件...`)
+const dist_gui_mp4 = path.join(currentDirectory, '/dist/gui.mp4');
+if(fs.existsSync(dist_gui_mp4)) {
+    fs.unlinkSync(dist_gui_mp4);
+    console.log(`移除非必要的 /dist/gui.mp4 文件成功...`)
+} else {
+    console.log(`/dist/gui.mp4 文件 不存在,无需移除...`)
+}
+
+console.log(`准备移除非必要的 /dist/plugins 文件夹...`)
+const dist_plugins = path.join(currentDirectory, '/dist/plugins');
+if(fs.existsSync(dist_plugins)) {
+    delallfilerid(dist_plugins)
+    fs.rmdirSync(dist_plugins)
+    console.log(`移除非必要的 /dist/plugins 文件夹成功...`)
+} else {
+    console.log(`/dist/plugins 文件夹 不存在,无需移除...`)
+}
+
+//删除文件夹下的所有文件
+function delallfilerid(fuckpath) {
+    fs.readdirSync(fuckpath).forEach((file, index, arr) => {
+        if (fs.lstatSync(`${fuckpath}/${file}`).isFile()) {
+            fs.unlinkSync(`${fuckpath}/${file}`)
+        }else if(fs.lstatSync(`${fuckpath}/${file}`).isDirectory()){
+            delallfilerid(`${fuckpath}/${file}`)
+            fs.rmdirSync(`${fuckpath}/${file}`)
+        }
+    })
+}