Jelajahi Sumber

feat: 新增 publish 脚本

chenlei 2 tahun lalu
induk
melakukan
9fe90516ea
3 mengubah file dengan 31 tambahan dan 1 penghapusan
  1. 1 0
      .gitignore
  2. 2 1
      package.json
  3. 28 0
      scripts/publish.js

+ 1 - 0
.gitignore

@@ -1,4 +1,5 @@
 .DS_Store
+.temp
 node_modules
 /build
 

+ 2 - 1
package.json

@@ -4,7 +4,8 @@
   "private": true,
   "scripts": {
     "serve": "cross-env TITLE=大理洱海科普馆 vue-cli-service serve",
-    "build": "cross-env TITLE=大理洱海科普馆 vue-cli-service build",
+    "build:test": "cross-env TITLE=大理洱海科普馆 vue-cli-service build",
+    "push:test": "cross-env node ./scripts/publish.js",
     "lint": "vue-cli-service lint",
     "prepare": "husky install"
   },

+ 28 - 0
scripts/publish.js

@@ -0,0 +1,28 @@
+const fs = require('fs-extra');
+const ch = require('child_process');
+const SCENE = process.env.SCENE;
+
+fs.ensureDirSync('.temp');
+fs.emptyDirSync('.temp');
+
+const distDir = `build${!!SCENE ? '/' + SCENE : ''}`;
+
+ch.execSync(`npm run build${!!SCENE ? ':' + SCENE : ''}:test`, {
+  stdio: ['ignore', 'inherit', 'inherit'],
+});
+
+const distFiles = fs.readdirSync(distDir);
+
+// 静态资源默认不上传
+const IGNORE_FILES = ['images', 'js', 'fonts'];
+
+if (!distFiles.length) throw new Error(`请先执行 yarn ${distDir}`);
+
+distFiles.forEach((fileName) => {
+  if (!process.env.INCLUDE_STATIC && IGNORE_FILES.includes(fileName)) return;
+
+  fs.copySync(
+    `${distDir}/${fileName}`,
+    `.temp/${fileName === 'resources' ? fileName : 'data/' + fileName}`
+  );
+});