72 lines
1.6 KiB
TypeScript
72 lines
1.6 KiB
TypeScript
|
import { resolve } from 'path'
|
||
|
import { defineConfig } from 'vite'
|
||
|
import solidPlugin from 'vite-plugin-solid'
|
||
|
|
||
|
// Конфигурация для разных окружений
|
||
|
const isProd = process.env.NODE_ENV === 'production'
|
||
|
|
||
|
export default defineConfig({
|
||
|
plugins: [solidPlugin()],
|
||
|
base: '/',
|
||
|
|
||
|
build: {
|
||
|
target: 'esnext',
|
||
|
outDir: 'dist',
|
||
|
minify: isProd,
|
||
|
sourcemap: !isProd,
|
||
|
|
||
|
rollupOptions: {
|
||
|
input: {
|
||
|
main: resolve(__dirname, 'client/index.tsx')
|
||
|
},
|
||
|
|
||
|
output: {
|
||
|
// Настройка выходных файлов
|
||
|
entryFileNames: '[name].js',
|
||
|
chunkFileNames: 'chunks/[name].[hash].js',
|
||
|
assetFileNames: 'assets/[name].[hash][extname]',
|
||
|
|
||
|
// Настройка разделения кода
|
||
|
manualChunks: {
|
||
|
vendor: ['solid-js', '@solidjs/router'],
|
||
|
graphql: ['./client/graphql.ts'],
|
||
|
auth: ['./client/auth.ts']
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// Оптимизация сборки
|
||
|
cssCodeSplit: true,
|
||
|
assetsInlineLimit: 4096,
|
||
|
chunkSizeWarningLimit: 500
|
||
|
},
|
||
|
|
||
|
// Настройка dev сервера
|
||
|
server: {
|
||
|
port: 3000,
|
||
|
proxy: {
|
||
|
'/api': {
|
||
|
target: 'http://localhost:8000',
|
||
|
changeOrigin: true
|
||
|
},
|
||
|
'/graphql': {
|
||
|
target: 'http://localhost:8000',
|
||
|
changeOrigin: true
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// Оптимизация зависимостей
|
||
|
optimizeDeps: {
|
||
|
include: ['solid-js', '@solidjs/router'],
|
||
|
exclude: []
|
||
|
},
|
||
|
|
||
|
// Настройка алиасов для путей
|
||
|
resolve: {
|
||
|
alias: {
|
||
|
'@': resolve(__dirname, 'client')
|
||
|
}
|
||
|
}
|
||
|
})
|