/** * 同步图形框架文件到 src/jl-graphic/ */ const { readdirSync, existsSync, copyFileSync, mkdirSync, rmSync, } = require('fs'); const { resolve } = require('path'); const jlGraphicSrcPath = resolve(__dirname, '../graphic-pixi/src/jlgraphic'); const jlGraphicLibPath = resolve(__dirname, '../src/jl-graphic'); /** * 检查并初始化当前项目引入的jl-graphic库 */ function checkAndInitJlGraphicLib() { const exist = existsSync(jlGraphicLibPath); if (exist) { console.log('jl-graphic文件夹已存在,清空'); readdirSync(jlGraphicLibPath, { withFileTypes: true, }).forEach((file) => { if (file.isDirectory()) { rmSync(resolve(jlGraphicLibPath, file.name), { recursive: true }); } else { rmSync(resolve(jlGraphicLibPath, file.name)); } }); } else { console.log('jl-graphic文件夹不存在,创建'); // 文件夹不存在,创建 mkdirSync(jlGraphicLibPath); } } function copyJlGraphicFiles() { readdirSync(jlGraphicSrcPath, { withFileTypes: true, }).forEach((file) => { recursiveCopyFiles(file); }); } function recursiveCopyFiles(file, path = []) { if (file.isFile()) { const fileSrcPath = resolve(jlGraphicSrcPath, ...path, file.name); const fileDestPath = resolve(jlGraphicLibPath, ...path, file.name); console.log(`copy file ${fileSrcPath} -> ${fileDestPath}`); copyFileSync(fileSrcPath, fileDestPath); } else if (file.isDirectory()) { const srcDir = resolve(jlGraphicSrcPath, ...path, file.name); const dirPath = resolve(jlGraphicLibPath, ...path, file.name); mkdirSync(dirPath); readdirSync(srcDir, { withFileTypes: true, }).forEach((subFile) => { recursiveCopyFiles(subFile, [...path, file.name]); }); } } function main() { checkAndInitJlGraphicLib(); copyJlGraphicFiles(); } main();