vite

Joey·2024년 12월 2일
0

Vite란 무엇인가?

Vite는 빠르고 경량화된 웹 개발 빌드 도구로, 특히 현대 프론트엔드 프레임워크(React, Vue 등)와 함께 사용하기 위해 설계되었습니다.
이 도구는 빠른 개발 서버와 효율적인 프로덕션 빌드를 제공하여 개발자 경험(DX)을 크게 향상시킵니다.


Vite의 주요 특징

1. 빠른 개발 서버

Vite는 기본적으로 ES 모듈을 기반으로 작동합니다.
이로 인해 개발 서버를 시작할 때 전체 애플리케이션을 번들링하지 않으며, 다음과 같은 이점이 있습니다:

  • 즉각적인 서버 시작: 프로젝트 크기에 관계없이 몇 밀리초 안에 서버가 실행됩니다.
  • 온디맨드 모듈 로드: 브라우저가 요청한 파일만 동적으로 제공하며, 캐싱을 활용해 빠른 응답을 보장합니다.

2. 효율적인 프로덕션 빌드

Vite는 프로덕션 빌드에서 Rollup을 사용하여 최적화된 번들링을 제공합니다:

  • 코드 스플리팅: 필요한 코드만 로드하도록 최적화.
  • 트리 쉐이킹(Tree Shaking): 사용되지 않는 코드를 제거.
  • 최신 브라우저 기능 활용: 브라우저의 기본 ES 모듈 기능을 최대한 활용.

3. 핫 모듈 교체(HMR)

Vite는 빠르고 효율적인 HMR(Hot Module Replacement) 기능을 제공합니다.

  • 변경된 모듈만 갱신하여 전체 애플리케이션을 새로고침하지 않고도 즉각적인 반영.
  • 개발 시 CSS와 JavaScript의 실시간 업데이트로 생산성 향상.

4. 유연한 플러그인 시스템

Vite는 플러그인 기반 아키텍처를 사용하며, Rollup의 플러그인 생태계를 활용합니다:

  • 커스텀 플러그인 생성 가능.
  • Vue, React, TypeScript 등 다양한 플러그인 제공.

Vite의 주요 구성 요소

1. 프로젝트 초기화

Vite 프로젝트는 간단한 명령어로 생성됩니다:

npm create vite@latest my-project
cd my-project
npm install
npm run dev
  • npm run dev 명령어로 로컬 개발 서버가 실행됩니다.

2. 구성 파일 (vite.config.js)

Vite는 구성 파일을 통해 맞춤 설정을 지원합니다

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';

export default defineConfig({
  plugins: [vue()],
  server: {
    port: 3000, // 개발 서버 포트
  },
  build: {
    sourcemap: true, // 디버깅을 위한 소스맵 생성
  },
});

3. 플러그인

Vite는 다양한 플러그인을 지원합니다.
예를 들어, React 프로젝트에서는 다음과 같은 플러그인을 사용할 수 있습니다

npm install @vitejs/plugin-react
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';

export default defineConfig({
  plugins: [react()],
});

Vite의 장점과 단점

장점

빠른 빌드 속도

ES 모듈과 Rollup을 사용하여 빌드 시간이 단축.

HMR 지원

빠르고 효율적인 모듈 갱신.

간단한 설정

초기 설정이 간단하고 사용자 정의가 용이.

플러그인 생태계 활용

Rollup 플러그인과 호환.


단점

구형 브라우저 지원

기본적으로 최신 브라우저를 대상으로 하며, 추가 설정 없이 IE11 등 구형 브라우저 지원이 어렵다.

초기 학습 곡선

기존 Webpack 사용자가 새로운 패러다임에 적응하는 데 시간이 걸릴 수 있다.


특징ViteWebpack
개발 서버 시작 속도매우 빠름느림
HMR 속도빠르고 효율적상대적으로 느림
프로덕션 빌드Rollup 기반으로 효율적 번들링번들 크기가 비교적 큼
플러그인 생태계Rollup 플러그인 활용 가능Webpack만의 방대한 플러그인 생태계

Vite를 사용하는 이유

빠른 피드백 루프

즉각적인 개발 서버 시작과 HMR로 개발 생산성 향상.

모던 프로젝트에 적합

최신 JavaScript 문법 및 브라우저 기능을 활용.

다양한 프레임워크 지원

React, Vue, Svelte 등과 원활히 통합.

profile
멋쟁이사자처럼 프론트엔드 부트캠프 12기

0개의 댓글