IT/React

vite

iamhyeon 2025. 2. 12. 18:38

⚡ CRA  vs  Next.js  vs  Vite

CRA

- 오랫동안 React 프로젝트를 만들기 위해서 Create React App라는 CLI 도구가 사용되었다.

- 오랫동안 React 생태계에서 프로젝트를 생성하는 표준처럼 여겨졌다.

- 하지만 CRA는 2022년 4월 이후로 업데이트가 전혀 없으며, React 공식 문서에서도 사라지면서 사실 상 폐기(deprecated) 수순을 밟고 있다.

 

Next.js

- React 프로젝트를 만들기 위해서 많이 사용되는데, Next.js는 프로젝트 생성 뿐만 아니라 라우팅, 데이터 패칭(fetching), Server-Side Rendering(SSR), Static Site Generation(SSG), 이미지 최적화 등 온갖 부가 기능을 지원하는 메타 프레임워크이다.

- 제대로 활용하려면 배워야할 것도 많고 CRA처럼 간단하게 React 프로젝트를 만들어 보는데는 적합한 도구가 아니다.

 

Vite
- 최근에 Vite가 CRA의 대안 기술로 부상하고 있다.

- CRA처럼 간편하게 React 프로젝트를 만들 수 있을 뿐만 아니라, CRA보다 훨씬 빠르고 쾌적한 개발 서버를 사용할 수 있다.
- Vite는 소규모 프로젝트부터 대규모 프로젝트까지 범용적으로 쓸 수 있도록 설계되어 있다.


⚡Vite

- 프랑스어로 "빠르다"는 뜻으로, Vue.js의 창시자인 에반 유(Evan You)가 개발한 프론트엔드 빌드 도구이다

- 현대 웹 개발에서 더욱 빠르고 효율적인 개발 환경을 제공하기 위해 설계되었다.

 

주요 특징:
- 빠른 개발 서버 시작:   Vite는 브라우저의 네이티브 ES 모듈 기능을 활용하여 개발 서버를 즉시 시작한다. 초기 로딩 시간을 크게 단축시킬 수 있다

- 향상된 HMR(Hot Module Replacement):   코드 변경 시 전체 페이지를 새로 고치지 않고, 수정된 모듈만 빠르게 교체하여 즉각적인 피드백을 제공한다. 개발 생산성이 향상된다
- 최신 JavaScript 및 CSS 기능 지원:   Vite는 최신 브라우저 환경을 대상으로 하여, 최신 JavaScript와 CSS 기능을 기본적으로 지원한다.  별도의 트랜스파일러나 폴리필 없이 최신 기능을 활용할 수 있다. 
- 간단한 설정과 유연성:   기본 설정이 간단하며, 필요에 따라 플러그인 시스템을 통해 기능을 확장할 수 있다. 또한, React, Vue, Svelte 등 다양한 프레임워크와의 통합을 지원한다. 

Vite의 동작 방식:
- Vite는 개발 단계에서 브라우저의 네이티브 ES 모듈을 활용하여 필요한 모듈만을 동적으로 로드한다.

- 번들링 없이도 빠른 개발 서버 시작과 HMR을 구현한다.

- 프로덕션 빌드 시에는 Rollup을 기반으로 코드를 번들링하여 최적화된 결과물을 생성한다

Vite의 장점:
- 성능 향상:   기존 번들러에 비해 개발 서버 시작 시간과 HMR 속도가 빠르다
- 간편한 설정:   복잡한 설정 없이도 프로젝트를 쉽게 시작할 수 있다.
- 유연한 플러그인 시스템:   필요에 따라 기능을 확장하거나 커스터마이징할 수 있다.


⚡Vite로 React 프로젝트 생성하는 방법

 

설치, 버전 확인:

📗 node -v
📙 npm -v
📘 yarn -v

 

Vite를 사용하여 React 프로젝트 생성:

📙 npm create vite@latest `프로젝트이름`
📘 yarn create vite

 

 

의존성 설치:

📙 npm install
📘 yarn create vite

 

 

개발 서버 실행:

📙 npm run dev
📘 yarn dev


브라우저에서 http://localhost:5173으로 접속하면 초기 React 애플리케이션이 실행되는 것을 확인할 수 있다.


⚡ .jsx => .js

 

Vite와 같은 최신 도구는 JSX 구문을 포함하는 파일을 올바르게 처리하기 위해 .jsx 확장자를 사용하는 것이 일반적이다. 이는 도구가 파일을 올바르게 인식하고 처리할 수 있도록 돕기 위한 것이다.

기존의 .js 확장자를 사용하면서도 Vite가 이를 올바르게 처리하도록 설정할 수 있다.

이를 위해 Vite 설정 파일을 수정하여 .js 파일에서도 JSX를 인식하도록 할 수 있다.

🗂️ vite.config.js
esbuild 옵션을 추가하여 .js 파일에서도 JSX를 인식하도록 설정한다.

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

export default defineConfig({
  plugins: [react()],
  esbuild: {
    loader: 'jsx',
    include: /src\/.*\.js$/,
    exclude: [],
  },
  optimizeDeps: {
    esbuildOptions: {
      loader: {
        '.js': 'jsx',
      },
    },
  },
});

 

optimizeDeps.esbuildOptions.loader 설정을 통해 Vite의 의존성 최적화 단계에서도 .js 파일을 JSX로 처리하도록 한다.

 

의존성 설치:

(만약 설치하지 않았다면 다음 명령어 수행)

npm install @vitejs/plugin-react --save-dev

오류 해결 안될 시, 프로젝트의 캐시를 삭제하고 개발 서버를 강제로 재시작하여 문제를 해결할 수 있다.


|  Vite 캐시 삭제 및 개발 서버 강제 재시작:
Vite는 개발 중 디펜던시를 사전 번들링하여 캐시에 저장한다

이 캐시가 손상되었거나 오래된 정보로 인해 문제가 발생할 수 있다.

이를 해결하기 위해 개발 서버를 --force 옵션과 함께 재시작하여 캐시를 삭제하고 디펜던시를 다시 번들링할 수 있다.

npm run dev -- --force

 

|  Node.js 및 패키지 매니저 캐시 삭제:
만약 위 방법으로 문제가 해결되지 않는다면,

Node.js와 패키지 매니저(npm 또는 yarn)의 캐시를 삭제하고 의존성 모듈을 재설치 해볼 수 있다.

( npm과 yarn의 캐시를 삭제하고, node_modules 폴더를 제거한 후 의존성 모듈을 재설치 )

📙 npm을 사용하는 경우:

npm cache clean --force
rmdir /s /q node_modules
npm install
더보기

/s → 하위 디렉토리까지 모두 삭제
/q → 삭제 확인 없이 강제 삭제

 

📘 yarn을 사용하는 경우:

yarn cache clean
rm -rf node_modules
yarn install

 

 

 

 

 


refer to

https://www.daleseo.com/vite-react/

 

 

반응형

'IT > React' 카테고리의 다른 글

Sass  (2) 2025.02.11
Redux  (2) 2024.12.27
React 개발환경 구성  (2) 2024.11.15