Vite의 기본 프로젝트 구성
Vite는 모던 웹 개발을 위한 번들러로, 간단하고 효율적인 프로젝트 구성을 제공합니다. Vite를 사용하면 개발 환경을 빠르게 설정할 수 있으며, 이를 통해 개발자는 코드 작성에 집중할 수 있습니다. Vite의 기본 프로젝트 구조는 구성 파일, 소스 코드 폴더, 그리고 빌드 및 배포를 위한 설정을 중심으로 이루어집니다. 이 섹션에서는 Vite 프로젝트를 처음 시작할 때 기본적으로 어떻게 구성되고, 각 부분이 어떤 역할을 하는지 깊이 있게 설명하겠습니다.
1. Vite 프로젝트 초기화
Vite 프로젝트를 시작하는 가장 기본적인 방법은 npm 또는 yarn을 사용하는 것입니다. 공식적으로 제공되는 템플릿을 사용하면 간단하게 프로젝트를 구성할 수 있습니다.
프로젝트 생성 명령
# npm 사용
npm create vite@latest
# yarn 사용
yarn create vite
이 명령을 실행하면 프로젝트를 생성할 때 사용할 템플릿을 선택할 수 있으며, 여기서 React, Vue, Svelte, Vanilla JS 등 다양한 프레임워크 템플릿을 제공합니다.
2. 기본 디렉토리 구조
Vite로 프로젝트를 생성한 후, 일반적인 디렉토리 구조는 아래와 같습니다.
my-vite-project/
├── index.html
├── package.json
├── vite.config.js
├── node_modules/
├── public/
└── src/
├── assets/
├── components/
├── App.vue (또는 main.js depending on framework)
└── main.js
각 파일과 디렉토리의 역할은 다음과 같습니다.
index.html
Vite는 HTML 중심의 개발을 지향합니다. index.html 파일은 프로젝트의 진입점으로, 여기서 기본적인 HTML 구조와 스크립트 로딩이 이루어집니다. 이 파일은 Vite가 직접 처리하며, 빌드 및 배포 시 이 파일을 기반으로 번들링된 자바스크립트 파일들이 포함됩니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite App</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>
여기서 중요한 점은 script 태그에서 **type="module"**을 사용한다는 점입니다. 이는 Vite가 ES 모듈 방식을 사용하기 때문에 필요하며, 모듈 기반으로 자바스크립트 파일을 로드합니다.
package.json
package.json 파일은 프로젝트의 의존성 및 스크립트를 정의합니다. Vite는 npm 스크립트를 통해 개발 서버를 실행하거나 빌드를 수행할 수 있습니다.
{
"name": "my-vite-project",
"version": "0.0.0",
"scripts": {
"dev": "vite", // 개발 서버 실행
"build": "vite build", // 프로덕션 빌드
"serve": "vite preview" // 로컬 서버에서 빌드 결과 미리보기
},
"dependencies": {
"vue": "^3.0.5"
},
"devDependencies": {
"vite": "^2.0.0"
}
}
여기서 dev 명령어를 사용하면 Vite의 개발 서버가 실행되며, build 명령어로 프로덕션 빌드를 할 수 있습니다.
vite.config.js
Vite의 설정 파일입니다. Vite는 기본적인 설정으로도 충분히 사용 가능하지만, 추가적인 최적화나 빌드 설정이 필요할 때 vite.config.js에서 이를 설정할 수 있습니다.
// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [vue()],
resolve: {
alias: {
'@': '/src'
}
}
})
위 예시에서는 Vue 플러그인을 추가하고, @를 /src로 해석하는 **경로 별칭(alias)**을 설정하고 있습니다. 이를 통해 코드 내에서 모듈을 불러올 때, 복잡한 상대 경로 대신 간단한 별칭을 사용할 수 있습니다.
// 예시 - 별칭을 사용하여 import
import MyComponent from '@/components/MyComponent.vue'
src/ 폴더
src 폴더는 프로젝트의 소스 코드를 담고 있는 폴더입니다. 여기에는 애플리케이션의 모든 컴포넌트, 스타일, 유틸리티, 상태 관리 로직 등이 포함됩니다.
- src/main.js: 애플리케이션의 진입점 파일로, Vite는 이 파일을 통해 애플리케이션을 실행합니다.
- src/assets/: 이미지, 폰트, 스타일과 같은 정적 자원을 관리하는 폴더입니다.
- src/components/: Vue 또는 React와 같은 프레임워크에서 사용하는 재사용 가능한 컴포넌트들을 모아둔 폴더입니다.
public/ 폴더
public 폴더에는 정적 파일을 넣습니다. 이 폴더에 있는 파일들은 빌드 시 변환되지 않고, 그대로 제공됩니다. 예를 들어, favicon이나 폰트 파일 등은 이곳에 위치합니다.
3. 기본 설정 옵션
Vite는 개발 및 빌드 시 다양한 설정을 제공하며, vite.config.js 파일에서 이를 자유롭게 구성할 수 있습니다.
기본 옵션 예시
export default defineConfig({
root: './src', // 프로젝트의 루트 디렉토리 설정
server: {
port: 3000, // 개발 서버 포트 설정
open: true // 서버 시작 시 브라우저 자동 오픈
},
build: {
outDir: 'dist', // 빌드 결과물이 저장될 디렉토리
minify: 'terser' // 코드를 최소화하기 위한 도구 설정
}
})
이 예시는 개발 서버의 포트, 자동 브라우저 열기 등의 개발 설정과, 빌드 시 코드 최소화(minification)를 위한 설정을 포함하고 있습니다.
4. 플러그인 시스템
Vite는 다양한 플러그인 시스템을 지원합니다. 플러그인을 통해 컴파일러를 확장하거나, 빌드 과정에서 추가적인 작업을 수행할 수 있습니다. Vite는 Rollup의 플러그인 시스템을 기반으로 하여, Rollup 플러그인을 그대로 사용할 수 있습니다. 또한, Vite는 프레임워크 별 플러그인을 제공하여 Vue, React, Svelte와 같은 프레임워크의 최적화된 설정을 쉽게 적용할 수 있습니다.
Vue 플러그인 추가 예시
npm install @vitejs/plugin-vue
// vite.config.js
import vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [vue()]
})
이처럼 플러그인을 추가하면 Vite가 해당 프레임워크 또는 특정 기능을 지원할 수 있도록 최적화됩니다.
결론
Vite의 기본 프로젝트 구성은 간결하고 모던한 웹 개발 환경을 제공합니다. 이를 통해 개발자는 불필요한 설정 작업을 줄이고, 빠른 개발 환경에서 코딩에만 집중할 수 있습니다. Vite는 프리-번들링, HMR, 빌드 성능 최적화와 같은 고성능 기능을 제공하면서도 사용이 매우 간단하여, 다양한 프로젝트에서 유용하게 활용될 수 있습니다.
'Vite' 카테고리의 다른 글
11. Vite의 플러그인 시스템 - 2 (0) | 2024.10.19 |
---|---|
10. Vite의 플러그인 시스템 - 1 (1) | 2024.10.19 |
9. Vite의 Dev Server 동작 방식 - 2 (1) | 2024.10.19 |
8. Vite의 Dev Server 동작 방식 -1 (0) | 2024.10.19 |
5. Vite의 주요 특징 - 3 (2) | 2024.10.19 |
4. Vite의 주요 특징 - 2 (0) | 2024.10.19 |
3. Vite의 주요 특징 - 1 (0) | 2024.10.19 |
2. Vite란 무엇인가? - 2 (0) | 2024.10.19 |