Files
pwap/web/vite.config.ts
T
pezkuwichain 11678fe7cd feat(web): add network subpages and subdomains listing page
- Add /subdomains page listing all 20 PezkuwiChain subdomains
- Add Back to Home button to Subdomains page
- Create NetworkPage reusable component for network details
- Add 7 network subpages: /mainnet, /staging, /testnet, /beta, /alfa, /development, /local
- Update ChainSpecs network cards to navigate to network subpages
- Add i18n translations for chainSpecs section in en.ts
- Add SDK docs with rebranding support (rebrand-rustdoc.cjs)
- Add generate-docs-structure.cjs for automatic docs generation
- Update shared libs: endpoints, polkadot, wallet, xcm-bridge
- Add new token logos: TYR, ZGR, pezkuwi_icon
- Add new pages: Explorer, Docs, Wallet, Api, Faucet, Developers, Grants, Wiki, Forum, Telemetry
2025-12-11 00:33:47 +03:00

69 lines
2.4 KiB
TypeScript

/// <reference types="vitest" />
import { defineConfig } from "vitest/config";
import react from "@vitejs/plugin-react-swc";
import path from "path";
import { nodePolyfills } from 'vite-plugin-node-polyfills';
// https://vitejs.dev/config/
export default defineConfig(() => ({
test: {
globals: true,
environment: 'jsdom',
setupFiles: './src/tests/setup.ts',
},
server: {
host: "::",
port: 8082,
strictPort: false, // Allow automatic port selection if 8082 is busy
hmr: {
protocol: 'ws',
host: 'localhost',
},
watch: {
usePolling: true,
},
},
plugins: [
react(),
nodePolyfills(),
].filter(Boolean),
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
"@pezkuwi/i18n": path.resolve(__dirname, "../shared/i18n"),
"@pezkuwi/lib": path.resolve(__dirname, "../shared/lib"),
"@pezkuwi/utils": path.resolve(__dirname, "../shared/utils"),
"@pezkuwi/theme": path.resolve(__dirname, "../shared/theme"),
"@pezkuwi/types": path.resolve(__dirname, "../shared/types"),
"@pezkuwi/components": path.resolve(__dirname, "../shared/components"),
"@shared": path.resolve(__dirname, "../shared"),
},
dedupe: ['react', 'lucide-react', 'sonner', '@polkadot/util-crypto', '@polkadot/util', '@polkadot/api', '@polkadot/extension-dapp', '@polkadot/keyring'],
},
optimizeDeps: {
include: ['@polkadot/util-crypto', '@polkadot/util', '@polkadot/api', '@polkadot/extension-dapp', '@polkadot/keyring', 'buffer'],
},
build: {
rollupOptions: {
external: [],
onwarn(warning, warn) {
// Suppress the buffer shim warning - it's handled by vite-plugin-node-polyfills
if (warning.message?.includes('vite-plugin-node-polyfills/shims/buffer')) {
return;
}
warn(warning);
},
output: {
manualChunks: {
'polkadot': ['@polkadot/api', '@polkadot/extension-dapp', '@polkadot/keyring', '@polkadot/util', '@polkadot/util-crypto'],
'vendor': ['react', 'react-dom', 'react-router-dom'],
'ui': ['@radix-ui/react-dialog', '@radix-ui/react-dropdown-menu', '@radix-ui/react-select', '@radix-ui/react-tabs', '@radix-ui/react-toast'],
'forms': ['react-hook-form', '@hookform/resolvers', 'zod'],
'i18n': ['i18next', 'react-i18next', 'i18next-browser-languagedetector']
}
}
},
chunkSizeWarningLimit: 600
},
assetsInclude: ['**/*.json'],
}));