You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.0 KiB
37 lines
1.0 KiB
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()
|
|
|