import { fileURLToPath, URL } from 'node:url' import { readFileSync } from 'node:fs' import { defineConfig } from 'vite' import uni from '@dcloudio/vite-plugin-uni' const protobufUtf8CompatPath = fileURLToPath(new URL('./src/utils/protobufUtf8Compat.js', import.meta.url)) function protobufUtf8CompatPlugin() { return { name: 'protobufjs-utf8-miniprogram-compat', load(id) { const normalizedId = id.replace(/\\/g, '/') if (normalizedId.endsWith('/node_modules/protobufjs/src/util/utf8.js')) { return readFileSync(protobufUtf8CompatPath, 'utf8') } } } } export default defineConfig({ resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } }, plugins: [ protobufUtf8CompatPlugin(), uni(), ], /** 构建时常量注入:__BUILD_TIME__ 在源码中展开为精确的打包时刻字符串 */ define: (() => { const d = new Date(); const pad = (n) => String(n).padStart(2, '0'); // 格式:YYYY.MMDD.HHmm,如 2026.0514.1530 const version = `${d.getFullYear()}.${pad(d.getMonth() + 1)}${pad(d.getDate())}.${pad(d.getHours())}${pad(d.getMinutes())}`; return { __BUILD_TIME__: JSON.stringify(version) }; })(), })