You've already forked template-MP
59 lines
1.6 KiB
JavaScript
59 lines
1.6 KiB
JavaScript
import { defineConfig } from 'vite'
|
|
import uni from '@dcloudio/vite-plugin-uni'
|
|
import { resolve } from 'path'
|
|
import { readFileSync, writeFileSync } from 'fs'
|
|
import dotenv from 'dotenv'
|
|
|
|
// 自定义插件:替换 manifest.json 中的 appid
|
|
function replaceManifestAppid() {
|
|
return {
|
|
name: 'replace-manifest-appid',
|
|
buildStart() {
|
|
// 获取环境变量,明确指定路径为项目根目录
|
|
dotenv.config({ path: resolve(__dirname, '.env') })
|
|
const appid = process.env.VITE_APPID
|
|
const uni_appId = process.env.VITE_UNI_APPID
|
|
|
|
if (appid && uni_appId) {
|
|
// 读取 manifest.json 文件
|
|
const manifestPath = resolve(__dirname, 'manifest.json')
|
|
let manifestContent = readFileSync(manifestPath, 'utf-8')
|
|
|
|
// 解析 JSON
|
|
const manifest = JSON.parse(manifestContent)
|
|
|
|
// 替换
|
|
manifest.appid = uni_appId
|
|
if (manifest['mp-weixin']) {
|
|
manifest['mp-weixin'].appid = appid
|
|
}
|
|
|
|
// 写回文件
|
|
writeFileSync(manifestPath, JSON.stringify(manifest, null, 4))
|
|
|
|
console.log(`Manifest appid 已更新为: ${uni_appId}`)
|
|
console.log(`Manifest mp-weixin appid 已更新为: ${appid}`)
|
|
} else {
|
|
console.warn('未找到 VITE_APPID 和 VITE_UNI_APPID 环境变量,使用默认值')
|
|
}
|
|
},
|
|
}
|
|
}
|
|
|
|
export default defineConfig({
|
|
plugins: [replaceManifestAppid(), uni()],
|
|
resolve: {
|
|
alias: {
|
|
'@': '/src',
|
|
},
|
|
},
|
|
build: {
|
|
minify: 'terser',
|
|
terserOptions: {
|
|
compress: {
|
|
drop_console: true,
|
|
},
|
|
},
|
|
},
|
|
})
|