Files
shoot-miniprograms/vite.config.js
T

43 lines
1.2 KiB
JavaScript

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) };
})(),
})