일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 비전공자
- 자바스크립트
- 리액트
- 연산자
- 깃
- 웹디자인기능사실기
- JS
- 코드공유
- web
- git
- HTML
- CSS
- react
- JavaScript
- 렛츠기릿자바스크립트
- 웹디자인기능사
- github
- jQuery
- 세로메뉴바
- 실기
- 생활코딩
- 정보처리기사
- Supabase
- 슬라이드전환
- 타입스크립트
- PROJECT
- 웹디실기
- 프론트엔드
- 코딩독학
- 웹퍼블리셔
- Today
- Total
코딩하는라민
[React, Vite] Vite 에서 .env 환경변수 사용하기 본문
[React, Vite] Vite 에서 .env 환경변수 사용하기
Vite 로 구성된 React 프로젝트를 다루다가 다음과 같은 에러를 마주쳤다.
환경변수 사용을 위해서 .env 파일에 외부로 노출되면 안 되는 key 값을 저장했고, 불러오는 과정에서 발생한 에러였다.
환경 변수란?
환경변수란 프로세스가 실행될 때 사용되는 동적인 값을 말한다.
데이터베이스 연결 정보, API Key, Port Number 등을 환경변수로 설정할 수 있다.
외부로 노출되면 안 되는 중요한 정보의 경우 소스코드에 직접 하드코딩하는 것이 아닌 환경 변수로 관리해야 보안성을 강화할 수 있다.
Vite 에서 환경 변수 사용은 다르다.
Node.js 환경에서는 `process.env` 를 사용하여 접근할 수 있다. Node.js 에서는 런타임 시에 환경 변수가 사용되는데, `process` 에는 Node.js 에 대한 정보를 가지고 있어 환경 변수를 다룰 수 있다.
하지만 Vite 에서 `process.env` 로 접근하려고 한다면 `process is not defined` 와 같은 에러가 발생한다.
Vite 에서는 환경 변수가 컴파일 시에 사용된다.
Vite 에서 환경변수에 접근하기 위해서는 `import.meta.env` 로 접근해야한다.
또한 환경변수를 구성할 때 변수의 명은 반드시 `VITE_` 로 시작되어야 한다. 이것이 Vite 의 규칙이기 때문이다.
Vite 는 .env 파일에서 환경 변수를 읽고 Javascript 모듈에 주입하는데, `VITE_` 로 시작하는 변수만 주입하기 때문이다.
다음은 환경 변수명을 VITE_ 로 시작하지 않았을 때 발생할 수 있는 에러이다.
- `Failed to parse .env file`
- `Cannot read property 'VARIABLE_NAME' of undefined`
- 빌드 시 에러
환경 변수 사용하기
.env
VITE_API_KEY = [API_KEY]
config.ts
const apiKey = import.meta.env.VITE_API_KEY
`import.meta` 는 모듈에 대한 메타 데이터를 저장하기 위한 객체이다.
마치며
환경에 따라 환경 변수 처리 방법이 다르며, Vite 에서는 import.meta.env 를 통해 환경 변수에 접근할 수 있다는 것을 알게 되었다. 또한 VITE_ 키워드로 변수명을 지정해줘야 하는 규칙도 있다.
API 키는 .env 파일에 보관하고 gitignore 에 등록하여 소스코드가 업로드되지 않도록 보안에 특히 조심해야한다.
reference
'Build · Deploy > Vite' 카테고리의 다른 글
[Vite] tsconfig.json 외에 tsconfig.app.json, tsconfig.node.json 파일이 생성되는 이유 (1) | 2024.10.20 |
---|---|
[React] Vite 차세대 프론트엔드 개발 툴 (0) | 2023.03.11 |