feat:增加支持打包时自动生成CNAME

This commit is contained in:
zhangchuanlong 2022-01-25 15:25:29 +08:00
parent 9b4a1d223d
commit f744043734
4 changed files with 26 additions and 5 deletions

5
.env
View File

@ -1,3 +1,6 @@
VITE_APP_TITLE = 'Vue Naive Admin'
VITE_PORT = 3100
VITE_PORT = 3100
# 打包时自动生成CNAME文件用于配置github pages自定义域名如不需要可注释或者直接删除
VITE_APP_GLOB_CNAME = 'template.qszone.com'

View File

@ -0,0 +1,14 @@
import chalk from 'chalk'
import { writeFileSync } from 'fs-extra'
import { OUTPUT_DIR } from '../constant'
import { getEnvConfig, getRootPath } from '../utils'
export function runBuildCNAME() {
const { VITE_APP_GLOB_CNAME } = getEnvConfig()
if (!VITE_APP_GLOB_CNAME) return
try {
writeFileSync(getRootPath(`${OUTPUT_DIR}/CNAME`), VITE_APP_GLOB_CNAME)
} catch (error) {
console.log(chalk.red('CNAME file failed to package:\n' + error))
}
}

View File

@ -1,9 +1,11 @@
import chalk from 'chalk'
import { runBuildConfig } from './build-config'
import { runBuildCNAME } from './build-cname'
export const runBuild = async () => {
try {
runBuildConfig()
runBuildCNAME()
console.log(`${chalk.cyan('build successfully!')}`)
} catch (error) {
console.log(chalk.red('vite build error:\n' + error))

View File

@ -40,17 +40,19 @@ function getConfFiles() {
const result = reg.exec(script)
if (result) {
const mode = result[1]
return ['.env', `.env.${mode}`]
return ['.env', '.env.local', `.env.${mode}`]
}
return ['.env', '.env.production']
return ['.env', '.env.local', '.env.production']
}
export function getEnvConfig(match = 'VITE_APP_GLOB_', confFiles = getConfFiles()) {
let envConfig = {}
confFiles.forEach((item) => {
try {
const env = dotenv.parse(fs.readFileSync(path.resolve(process.cwd(), item)))
envConfig = { ...envConfig, ...env }
if (fs.existsSync(path.resolve(process.cwd(), item))) {
const env = dotenv.parse(fs.readFileSync(path.resolve(process.cwd(), item)))
envConfig = { ...envConfig, ...env }
}
} catch (e) {
console.error(`Error in parsing ${item}`, e)
}