core/vite.config.ts

65 lines
1.5 KiB
TypeScript
Raw Permalink Normal View History

2025-07-02 19:30:21 +00:00
import { readFileSync } from 'node:fs'
2025-06-30 18:25:26 +00:00
import { resolve } from 'node:path'
2025-05-16 06:23:48 +00:00
import { defineConfig } from 'vite'
import solidPlugin from 'vite-plugin-solid'
2025-07-02 19:30:21 +00:00
// Читаем версию из package.json
const packageJsonPath = resolve(__dirname, 'package.json')
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'))
const version = packageJson.version
2025-05-16 06:23:48 +00:00
// Конфигурация для разных окружений
const isProd = process.env.NODE_ENV === 'production'
export default defineConfig({
plugins: [solidPlugin()],
2025-06-30 18:25:26 +00:00
2025-07-02 19:30:21 +00:00
// Определяем переменные окружения
define: {
__APP_VERSION__: JSON.stringify(version)
},
2025-05-16 06:23:48 +00:00
build: {
target: 'esnext',
outDir: 'dist',
2025-06-30 18:25:26 +00:00
assetsDir: 'assets',
emptyOutDir: true,
2025-05-16 06:23:48 +00:00
sourcemap: !isProd,
2025-06-30 18:25:26 +00:00
minify: isProd ? 'terser' : false,
cssMinify: isProd ? 'lightningcss' : false,
2025-05-16 06:23:48 +00:00
// Оптимизация сборки
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: {
2025-06-30 18:25:26 +00:00
include: ['solid-js'],
2025-05-16 06:23:48 +00:00
exclude: []
},
// Настройка алиасов для путей
resolve: {
alias: {
2025-05-16 07:30:02 +00:00
'~': resolve(__dirname, 'panel')
2025-05-16 06:23:48 +00:00
}
}
})