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