From 709c250c349faaec675f13227363e4f54793539b Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期四, 06 八月 2020 15:40:27 +0800
Subject: [PATCH] build: 添加app分类脚本

---
 .gitignore   |    1 
 appPack.js   |   82 +++++++++++++++++++++++++++++++++++++++++
 package.json |    2 
 3 files changed, 84 insertions(+), 1 deletions(-)

diff --git a/.gitignore b/.gitignore
index 0bdcb15..3bbae91 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
 .DS_Store
 node_modules
 /dist
+/app
 
 package-lock.json
 
diff --git a/appPack.js b/appPack.js
new file mode 100644
index 0000000..5f0bda3
--- /dev/null
+++ b/appPack.js
@@ -0,0 +1,82 @@
+const fs = require('fs')
+const path = require("path");
+const glob = require('glob')
+
+function cleanDir(path) {
+  let files = [];
+  if (fs.existsSync(path)) {
+    files = fs.readdirSync(path);
+    files.forEach((file, index) => {
+      let curPath = path + "/" + file;
+      if (fs.statSync(curPath).isDirectory()) {
+        cleanDir(curPath); //閫掑綊鍒犻櫎鏂囦欢澶�
+      } else {
+        fs.unlinkSync(curPath); //鍒犻櫎鏂囦欢
+      }
+    });
+    fs.rmdirSync(path);
+  }
+}
+
+var copy = function (src, dst) {
+  let paths = fs.readdirSync(src); //鍚屾璇诲彇褰撳墠鐩綍
+  paths.forEach(function (path) {
+    var _src = src + '/' + path;
+    var _dst = dst + '/' + path;
+    fs.stat(_src, function (err, stats) {  //stats  璇ュ璞� 鍖呭惈鏂囦欢灞炴��
+      if (err) throw err;
+      if (stats.isFile()) { //濡傛灉鏄釜鏂囦欢鍒欐嫹璐� 
+        let readable = fs.createReadStream(_src);//鍒涘缓璇诲彇娴�
+        let writable = fs.createWriteStream(_dst);//鍒涘缓鍐欏叆娴�
+        readable.pipe(writable);
+      } else if (stats.isDirectory()) { //鏄洰褰曞垯 閫掑綊 
+        copyDirectory(_src, _dst, copy);
+      }
+    });
+  });
+}
+
+function mkdirsSync(dirname, mode) {
+  if (fs.existsSync(dirname)) {
+    return true;
+  } else {
+    if (mkdirsSync(path.dirname(dirname), mode)) {
+      fs.mkdirSync(dirname, mode);
+      return true;
+    }
+  }
+}
+
+var copyDirectory = function (src, dst, callback) {
+  // console.log("> \t", dst)
+  if (!fs.existsSync(src)) {
+    return;
+  }
+  fs.access(dst, fs.constants.F_OK, (err) => {
+    if (err) {
+      mkdirsSync(dst);
+      callback(src, dst);
+    } else {
+      callback(src, dst);
+    }
+  });
+};
+
+console.log("> \tClass the apps")
+
+const baseDir = "app"
+
+// 娓呯┖app 鏂囦欢澶�
+cleanDir(baseDir)
+
+glob.sync('./src/pages/**/main.ts').forEach(path => {
+  const appDir = path.split('./src/pages/')[1].split('/main.ts')[0];
+  if (appDir != "index") {
+    let app = appDir.split('/index')[0]
+
+    copyDirectory("dist/js/" + app, baseDir + "/" + app + "/js/" + app, copy)
+    copyDirectory("dist/css/" + app, baseDir + "/" + app + "/css/" + app, copy)
+    copyDirectory("dist/view/" + app, baseDir + "/" + app + "/view/" + app, copy)
+    copyDirectory("dist/images/" + app, baseDir + "/" + app + "/images/" + app, copy)
+  }
+})
\ No newline at end of file
diff --git a/package.json b/package.json
index c134b03..eae4781 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
   "private": true,
   "scripts": {
     "serve": "vue-cli-service serve",
-    "build": "vue-cli-service build",
+    "build": "vue-cli-service build && node appPack.js",
     "lint": "vue-cli-service lint"
   },
   "dependencies": {

--
Gitblit v1.8.0