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
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|