36 lines
908 B
TypeScript
36 lines
908 B
TypeScript
import { fileURLToPath, URL } from 'node:url'
|
|
|
|
import { defineConfig } from 'vite'
|
|
import vue from '@vitejs/plugin-vue'
|
|
import vueJsx from '@vitejs/plugin-vue-jsx'
|
|
import vueDevTools from 'vite-plugin-vue-devtools'
|
|
|
|
// https://vite.dev/config/
|
|
export default defineConfig({
|
|
plugins: [
|
|
vue(),
|
|
vueJsx(),
|
|
vueDevTools(),
|
|
],
|
|
resolve: {
|
|
alias: {
|
|
'@': fileURLToPath(new URL('./src', import.meta.url))
|
|
},
|
|
},
|
|
server: {
|
|
// ngrok 등 외부 도메인 접근 허용 (DNS Rebinding 보호 비활성화)
|
|
allowedHosts: true,
|
|
// 도커/윈도우 환경 파일 핫 리로딩 강제 활성화
|
|
watch: {
|
|
usePolling: true,
|
|
},
|
|
// 개발 중 /api 요청을 NestJS 백엔드(3000)로 프록시 (CORS 회피)
|
|
proxy: {
|
|
'/api': {
|
|
target: process.env.VITE_API_PROXY_TARGET || 'http://localhost:3000',
|
|
changeOrigin: true,
|
|
},
|
|
},
|
|
}
|
|
})
|