zhangzengfei
2020-08-06 709c250c349faaec675f13227363e4f54793539b
build: 添加app分类脚本
1个文件已添加
2个文件已修改
85 ■■■■■ 已修改文件
.gitignore 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appPack.js 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -1,6 +1,7 @@
.DS_Store
node_modules
/dist
/app
package-lock.json
appPack.js
New file
@@ -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)
  }
})
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": {