Files
happy-life-star/mini-program/vite.config.js
T
peanut fbf76611d1 fix(mini-program): 修复 logo.svg 500 错误
问题:
- 小程序请求 /static/logo.svg 返回 500 错误
- logo.svg 文件在 src/static/ 目录,但编译后未被复制到输出目录

修复:
1. 在 mini-program/ 根目录创建 static/ 目录
2. 将 logo.svg 复制到 mini-program/static/logo.svg
3. 修改 vite.config.js 添加 publicDir 配置,让 Vite 复制 static 目录
4. 更新图片路径:/static/logo.svg → /logo.svg
   - pages/splash/index.vue
   - pages/main/index.vue

效果:
- logo.svg 正确编译到 unpackage/dist/dev/mp-weixin/logo.svg
- 小程序正常加载 logo 图片
- 不再出现 500 错误
2026-04-07 23:39:12 +08:00

62 lines
1.6 KiB
JavaScript

import { defineConfig } from 'vite'
import { resolve } from 'path'
import uni from '@dcloudio/vite-plugin-uni'
const uniPlugin = uni.default || uni
const vueCompatPlugin = () => {
const virtualId = '\0virtual:vue-compat'
const publicId = 'virtual:vue-compat'
return {
name: 'vue-compat-uni',
resolveId(id) {
if (id === publicId) return virtualId
if (id === 'vue') return virtualId
return null
},
load(id) {
if (id !== virtualId) return null
return [
"import * as VueRuntime from 'vue/dist/vue.runtime.esm-bundler.js'",
"export * from 'vue/dist/vue.runtime.esm-bundler.js'",
'export default VueRuntime',
'export const injectHook = () => {}',
'export const isInSSRComponentSetup = () => false'
].join('\n')
}
}
}
export default defineConfig(({ command }) => {
const isMpWeixin = process.env.UNI_PLATFORM === 'mp-weixin'
const inputDir = process.env.UNI_INPUT_DIR || '.'
const mpEntry = resolve(inputDir, 'main.js')
const outDir = isMpWeixin
? (command === 'serve' ? 'unpackage/dist/dev/mp-weixin' : 'unpackage/dist/build/mp-weixin')
: 'dist'
return {
envDir: __dirname,
publicDir: resolve(__dirname, 'static'),
server: {
watch: {
usePolling: true,
interval: 100
},
hmr: true
},
resolve: {
alias: [
{ find: /^vue$/, replacement: 'virtual:vue-compat' }
]
},
build: {
outDir,
emptyOutDir: false,
rollupOptions: isMpWeixin
? { input: mpEntry }
: undefined
},
plugins: [vueCompatPlugin(), uniPlugin()]
}
})