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