43 lines
1.2 KiB
JavaScript
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) };
|
|
})(),
|
|
|
|
})
|
|
|
|
|