Contents
see List작성일 2025. 11. 30.
Webpack에서 Vite로 마이그레이션
레거시 Webpack 프로젝트를 더 빠른 Vite로 마이그레이션하는 가이드입니다.
Vite 장점
- 빠른 HMR (Hot Module Replacement)
- ESM (ES Modules) 기반의 빠른 개발 서버
- 간단한 설정
- 빌드 시 Rollup 사용으로 최적화된 번들
설치
# Vite 설치
npm install -D vite
# 또는 프로젝트 생성
npm create vite@latest my-app
# 플러그인 설치 (React 예시)
npm install -D @vitejs/plugin-reactvite.config.js 기본 설정
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
export default defineConfig({
plugins: [react()],
server: {
port: 3000,
proxy: {
"/api": {
target: "http://localhost:8080",
changeOrigin: true
}
}
},
build: {
outDir: "dist",
sourcemap: true
}
});Webpack 설정 → Vite 변환
// Webpack resolve.alias
resolve: { alias: { "@": path.resolve(__dirname, "src") } }
// Vite 동일 설정
resolve: { alias: { "@": "/src" } }
// Webpack DefinePlugin
new webpack.DefinePlugin({ "process.env.API_URL": JSON.stringify(url) })
// Vite 동일 설정
define: { "process.env.API_URL": JSON.stringify(url) }환경 변수 마이그레이션
# .env 파일
# Webpack: REACT_APP_ 접두사
REACT_APP_API_URL=http://api.example.com
# Vite: VITE_ 접두사
VITE_API_URL=http://api.example.com
# 코드에서 사용
// Webpack
process.env.REACT_APP_API_URL
// Vite
import.meta.env.VITE_API_URLindex.html 이동
<!-- Vite는 index.html이 루트에 위치해야 함 -->
<!DOCTYPE html>
<html>
<head>
<title>My App</title>
</head>
<body>
<div id="root"></div>
<!-- Vite 방식: type="module" 필수 -->
<script type="module" src="/src/main.jsx"></script>
</body>
</html>package.json 스크립트 변경
{
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
}
}일반적인 마이그레이션 체크리스트
- Vite 및 플러그인 설치
- vite.config.js 생성
- index.html 루트로 이동
- 환경변수 접두사 변경 (VITE_)
- require() → import 변환
- process.env → import.meta.env 변환
- webpack 관련 파일 삭제
주의사항
- CommonJS 모듈은 ESM으로 변환 필요
- 일부 Webpack 플러그인은 Vite 대체품 필요
- CSS/SCSS 로더 설정 확인
javascript
| No | 작성일 | Title |
|---|---|---|
| 2921 | 2026. 05. 31. | 브라우저 중복 탭 작업 제어: BroadcastChannel과 Web Locks로 자동 저장 충돌 막기 |
| 2866 | 2026. 05. 23. | Node.js 운영 추적 로그 설계: AsyncLocalStorage로 요청 ID와 장애 원인 연결하기 |
| 2787 | 2026. 05. 15. | Node.js fetch 타임아웃·재시도 표준 패턴: AbortSignal로 장애 전파 막기 |
| 2589 | 2026. 04. 23. | ES2026 JavaScript 신기능 완전 가이드: using/await using, Array.fromAsync, Error.isError, Math.sumPrecise 실전 적용 |
| 2490 | 2026. 04. 14. | ES2025/ES2026 완벽 정리: Iterator Helpers, Temporal API, using 키워드 실전 가이드 |
| 2469 | 2026. 04. 13. | ES2026 완벽 가이드: Temporal API, using/await using, Array/Set 신기능 총정리 |
| 2449 | 2026. 04. 12. | ES2025/ES2026 JavaScript 신기능 완벽 정리: Temporal API부터 using 키워드까지 |
| 2425 | 2026. 04. 11. | Node.js 24 LTS 핵심 신기능 완벽 가이드 - V8 13.6, Permission Model, URLPattern |
| 2389 | 2026. 04. 09. | ES2025 핵심 신규 기능 총정리 - Set 연산, Iterator Helpers, Temporal API까지 |
| 2368 | 2026. 04. 08. | ES2025/ES2026 완벽 정리: Temporal API, Resource Management, 새 문법 총정리 |