- src/api/API.js — комменты, описание env - vite.config.js — описание полей - src/App.jsx — IndexRoute (текст «Плеер Рублокса») - src/KubikonPlayer/KubikonPlayer.jsx — exitPlayer - src/engine/PlayerController.js — _storysApiUrl - src/engine/GameRuntime.js — _resolveExternalUrl - src/engine/devlog.js — убрал упоминания приватных путей разработчика - src/fixtures/sample-game.json — title/description
56 lines
2.3 KiB
JavaScript
56 lines
2.3 KiB
JavaScript
import { defineConfig, loadEnv } from 'vite';
|
||
import react from '@vitejs/plugin-react';
|
||
|
||
// Vite-конфиг плеера Рублокса.
|
||
//
|
||
// - порт 5173 фиксирован (код плеера и внешние ссылки на него рассчитывают)
|
||
// - outDir 'build' (деплоится в nginx /var/www/rublox-player/build/)
|
||
// - manualChunks выносят babylon/colyseus в отдельные чанки
|
||
// (движок ~46к строк, single-bundle >5 МБ; браузер парсит дольше)
|
||
// - define для process.env.NODE_ENV — шим для engine-кода, который
|
||
// использовал CRA-провайденный глобал
|
||
// - dev-proxy по умолчанию ходит на staging; переопределяй через
|
||
// VITE_API_PROXY_TARGET в .env.development.local чтобы указать свой бэкенд.
|
||
export default defineConfig(({ mode }) => {
|
||
// Грузим env чтобы взять VITE_API_PROXY_TARGET для proxy-конфига.
|
||
const env = loadEnv(mode, process.cwd(), '');
|
||
const PROXY_TARGET = env.VITE_API_PROXY_TARGET || 'https://dev-api.rublox.pro';
|
||
|
||
// Все префиксы бэкенда с которыми общается плеер.
|
||
// Каждая запись создаёт Vite-proxy: /api-X/* → ${PROXY_TARGET}/api-X/*
|
||
const proxyPrefixes = ['/api-user', '/api-storys', '/api-game'];
|
||
const proxy = Object.fromEntries(
|
||
proxyPrefixes.map((p) => [
|
||
p,
|
||
{ target: PROXY_TARGET, changeOrigin: true, secure: true, ws: true },
|
||
])
|
||
);
|
||
|
||
return {
|
||
plugins: [react()],
|
||
server: {
|
||
// Явно биндим IPv4 — Vite по умолчанию слушает [::1] на Windows,
|
||
// что ломает IPv4-localhost (ECONNREFUSED от curl/браузера).
|
||
host: '127.0.0.1',
|
||
port: 5173,
|
||
strictPort: true,
|
||
proxy,
|
||
},
|
||
build: {
|
||
outDir: 'build',
|
||
sourcemap: false,
|
||
rollupOptions: {
|
||
output: {
|
||
manualChunks: {
|
||
babylon: ['@babylonjs/core', '@babylonjs/loaders'],
|
||
colyseus: ['colyseus.js'],
|
||
},
|
||
},
|
||
},
|
||
},
|
||
define: {
|
||
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),
|
||
},
|
||
};
|
||
});
|