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.
47 lines
1.2 KiB
47 lines
1.2 KiB
7 months ago
|
import path from 'path'
|
||
|
import fsExtra from 'fs-extra'
|
||
|
import minimist from 'minimist'
|
||
|
const { existsSync, remove, copy } = fsExtra
|
||
|
const cwd = process.cwd()
|
||
|
const argv = minimist(process.argv.slice(2), {
|
||
|
alias: {
|
||
|
target: 't',
|
||
|
output: 'o'
|
||
|
}
|
||
|
})
|
||
|
//打包发布路径,谨慎改动
|
||
|
const releaseRelativePath = `../server/public/${argv.output}`
|
||
|
const distPath = path.resolve(cwd, `dist/build/${argv.target}`)
|
||
|
const releasePath = path.resolve(cwd, releaseRelativePath)
|
||
|
|
||
|
async function build() {
|
||
|
if (existsSync(releasePath)) {
|
||
|
await remove(releasePath)
|
||
|
}
|
||
|
console.log(
|
||
|
`文件正在复制:dist/build/${argv.target} ==> ${releaseRelativePath}`
|
||
|
)
|
||
|
try {
|
||
|
await copyFile(distPath, releasePath)
|
||
|
} catch (error) {
|
||
|
console.log(`\n ${error}`)
|
||
|
}
|
||
|
console.log(
|
||
|
`文件已复制:dist/build/${argv.target} ==> ${releaseRelativePath}`
|
||
|
)
|
||
|
}
|
||
|
|
||
|
function copyFile(sourceDir, targetDir) {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
copy(sourceDir, targetDir, (err) => {
|
||
|
if (err) {
|
||
|
reject(err)
|
||
|
} else {
|
||
|
resolve()
|
||
|
}
|
||
|
})
|
||
|
})
|
||
|
}
|
||
|
|
||
|
build()
|