import { execaCommand } from "execa"; import path from "path"; import fsExtra from "fs-extra"; const { existsSync, remove, copy } = fsExtra; const cwd = process.cwd(); //打包发布路径,谨慎改动 const releaseRelativePath = "../public/admin"; const distPath = path.resolve(cwd, "dist"); const releasePath = path.resolve(cwd, releaseRelativePath); async function build() { await execaCommand("vite build", { stdio: "inherit", encoding: "utf-8", cwd, }); if (existsSync(releasePath)) { await remove(releasePath); } console.log(`文件正在复制 ==> ${releaseRelativePath}`); try { await copyFile(distPath, releasePath); } catch (error) { console.log(`\n ${error}`); } console.log(`文件已复制 ==> ${releaseRelativePath}`); } function copyFile(sourceDir, targetDir) { return new Promise((resolve, reject) => { copy(sourceDir, targetDir, (err) => { if (err) { reject(err); } else { resolve(); } }); }); } build();