9a3652d767
Co-authored-by: Cursor <cursoragent@cursor.com>
26 lines
820 B
JavaScript
26 lines
820 B
JavaScript
import { execFileSync } from 'node:child_process';
|
||
import { existsSync, rmSync, statSync } from 'node:fs';
|
||
import { resolve } from 'node:path';
|
||
|
||
const root = process.cwd();
|
||
const distDir = resolve(root, 'dist');
|
||
const zipPath = resolve(root, 'dist.zip');
|
||
|
||
if (!existsSync(distDir) || !statSync(distDir).isDirectory()) {
|
||
console.error('[zip-dist] dist 目录不存在,请先完成构建');
|
||
process.exit(1);
|
||
}
|
||
|
||
if (existsSync(zipPath)) {
|
||
rmSync(zipPath);
|
||
}
|
||
|
||
// 压缩 dist 内文件到根级(解压即 index.html / assets,便于直接上传部署)
|
||
execFileSync('zip', ['-qr', zipPath, '.', '-x', '*.DS_Store', '-x', '__MACOSX/*'], {
|
||
cwd: distDir,
|
||
stdio: 'inherit',
|
||
});
|
||
|
||
const sizeMb = (statSync(zipPath).size / (1024 * 1024)).toFixed(2);
|
||
console.log(`[zip-dist] 已生成 ${zipPath}(${sizeMb} MB)`);
|