New file |
| | |
| | | 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) |
| | | } |
| | | }) |