Sharkey/packages/frontend/vite.config.local-dev.ts

70 lines
1.5 KiB
TypeScript
Raw Normal View History

2023-12-07 23:22:08 +00:00
import dns from 'dns';
import { readFile } from 'node:fs/promises';
2023-12-07 23:22:08 +00:00
import { defineConfig } from 'vite';
import * as yaml from 'js-yaml';
import locales from '../../locales/index.js';
2023-12-07 23:22:08 +00:00
import { getConfig } from './vite.config.js';
dns.setDefaultResultOrder('ipv4first');
const defaultConfig = getConfig();
const { port } = yaml.load(await readFile('../../.config/default.yml', 'utf-8'));
const httpUrl = `http://localhost:${port}/`;
const websocketUrl = `ws://localhost:${port}/`;
2023-12-07 23:22:08 +00:00
const devConfig = {
// 基本の設定は vite.config.js から引き継ぐ
...defaultConfig,
root: 'src',
publicDir: '../assets',
base: './',
server: {
host: 'localhost',
port: 5173,
proxy: {
'/api': {
changeOrigin: true,
target: httpUrl,
2023-12-07 23:22:08 +00:00
},
'/assets': httpUrl,
'/static-assets': httpUrl,
'/client-assets': httpUrl,
'/files': httpUrl,
'/twemoji': httpUrl,
'/fluent-emoji': httpUrl,
2024-02-03 19:19:44 +00:00
'/tossface': httpUrl,
'/sw.js': httpUrl,
2023-12-07 23:22:08 +00:00
'/streaming': {
target: websocketUrl,
2023-12-07 23:22:08 +00:00
ws: true,
},
'/favicon.ico': httpUrl,
2023-12-07 23:22:08 +00:00
'/identicon': {
target: httpUrl,
2023-12-07 23:22:08 +00:00
rewrite(path) {
return path.replace('@localhost:5173', '');
},
},
'/url': httpUrl,
'/proxy': httpUrl,
2023-12-07 23:22:08 +00:00
},
},
build: {
...defaultConfig.build,
rollupOptions: {
...defaultConfig.build?.rollupOptions,
input: 'index.html',
},
},
define: {
...defaultConfig.define,
_LANGS_FULL_: JSON.stringify(Object.entries(locales)),
},
2023-12-07 23:22:08 +00:00
};
export default defineConfig(({ command, mode }) => devConfig);