mirror of
https://github.com/pezkuwichain/pezkuwi-telegram-miniapp.git
synced 2026-04-22 01:57:56 +00:00
70 lines
1.7 KiB
TypeScript
70 lines
1.7 KiB
TypeScript
import { defineConfig } from 'vite';
|
|
import react from '@vitejs/plugin-react-swc';
|
|
import { nodePolyfills } from 'vite-plugin-node-polyfills';
|
|
import path from 'path';
|
|
import fs from 'fs';
|
|
|
|
// Read version info for build
|
|
const versionInfo = JSON.parse(
|
|
fs.readFileSync(path.resolve(__dirname, './src/version.json'), 'utf-8')
|
|
);
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
react(),
|
|
nodePolyfills({
|
|
include: ['buffer', 'crypto', 'stream', 'util'],
|
|
globals: {
|
|
Buffer: true,
|
|
global: true,
|
|
process: true,
|
|
},
|
|
}),
|
|
// Copy version.json to dist for update checking
|
|
{
|
|
name: 'copy-version',
|
|
closeBundle() {
|
|
const src = path.resolve(__dirname, './src/version.json');
|
|
const dest = path.resolve(__dirname, './dist/version.json');
|
|
fs.copyFileSync(src, dest);
|
|
console.log('✓ version.json copied to dist');
|
|
},
|
|
},
|
|
],
|
|
define: {
|
|
__APP_VERSION__: JSON.stringify(versionInfo.version),
|
|
__BUILD_TIME__: JSON.stringify(versionInfo.buildTime),
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
'@': path.resolve(__dirname, './src'),
|
|
},
|
|
},
|
|
server: {
|
|
port: 5173,
|
|
},
|
|
build: {
|
|
outDir: 'dist',
|
|
emptyOutDir: true,
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks: {
|
|
// React core
|
|
'vendor-react': ['react', 'react-dom'],
|
|
// React Query
|
|
'vendor-query': ['@tanstack/react-query'],
|
|
// UI components and icons
|
|
'vendor-ui': ['lucide-react'],
|
|
// Pezkuwi/Polkadot crypto libraries (largest chunk)
|
|
'vendor-crypto': [
|
|
'@pezkuwi/api',
|
|
'@pezkuwi/keyring',
|
|
'@pezkuwi/util-crypto',
|
|
'@pezkuwi/util',
|
|
],
|
|
},
|
|
},
|
|
},
|
|
},
|
|
});
|