ttk-app-core
Version:
@ttk/recat enterprise develop framework
53 lines (45 loc) • 1.58 kB
JavaScript
/**
* 用于删除旧工程中关于apps模块(如edf)等配置文件,新工程自动搜索
* 包括theme目录、index.js、index.less这些import配置文件
*/
const fs = require('fs');
const JSON_APPS_PATH = './src/jsonApps'
const handle = (path, name) => {
// 同时存在theme目录、index.js、index.less的目录为模块目录
if (fs.existsSync(`${path}/theme`) && fs.existsSync(`${path}/index.js`) && fs.existsSync(`${path}/index.less`)) {
fs.unlinkSync(`${path}/index.js`)
console.log(`删除模块${name}的index.js`)
fs.unlinkSync(`${path}/index.less`)
console.log(`删除模块${name}的index.less`)
delDir(`${path}/theme`)
console.log(`删除模块${name}的theme`)
}
search(path);
}
const delDir = (path) => {
const list = fs.readdirSync(path)
list.forEach((name) => {
let childPath = `${path}/${name}`;
const stats = fs.statSync(childPath)
// 判断是文件还是文件夹
if (stats.isFile(childPath)) {
// 当前为文件,则删除文件
fs.unlinkSync(childPath)
} else {
// 当前为文件夹,则递归调用自身
delDir(childPath)
}
})
// 删除空文件夹
fs.rmdirSync(path)
}
const search = (path) => {
const dirs = fs.readdirSync(path, { withFileTypes: true })
dirs.forEach(dir => {
if (dir.isDirectory()) {
let childPath = `${path}/${dir.name}`;
handle(childPath,dir.name);
}
})
}
search(JSON_APPS_PATH);