Notice
Recent Posts
Recent Comments
Link
반응형
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
Tags
- 코테준비
- stack
- 성인학습지
- 정렬
- 삼성
- 카카오
- 자바스크립트
- 가벼운학습지
- java
- 인프런
- 백준
- 가벼운학습지후기
- 코테
- mybatis
- 알고리즘
- 스텍
- 프로그래머스
- javascript
- 코딩
- 일본어독학
- SWEA
- 일본어공부
- 삼성소프트웨어아카데미
- 자바
- 코딩테스트
- 자료구조
- array
- 마이라이트
- js
- 일본어학습지
Archives
- Today
- Total
개발에 AtoZ까지
[Error 노트] vite에서 env 설정하는 방법 본문
반응형
🤔 문제상황
vite를 사용하는 환경에서 env 설정이 적용되지 않는 현상

💻 프로젝트 환경
- React V18.2.0
- vite V4.4.5
- Typescript V5.0.2
🔍 원인
vite에서는 env 존재하지 않더라도 실행시에는 문제가 없다.
vite 공식문서를 보면 env를 custom 할때는 몇 가지 규칙 있다고 한다.
- src 디렉토리 내부에서 env의 설정값을 불러올려면 VITE_ 접두사를 사용해야 한다. (Public 느낌)
- 타입스크립트 사용하여 타입 추론하고 싶다면 아래와 같이 설정해줘야 한다.
/*
디렉토리: vite-env.d.ts
*/
/// <reference types="vite/client" />
interface ImportMetaEnv {
readonly VITE_API_SERVER_URL: string;
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}
위의 2가지 외에도 몇 가지 팁이 있다. (그 부분은 공식 문서를 참고하기 바란다.)
위의 내용을 활용해서 env의 따라서 axios의 baseUrl 를 다르게 설정하고 싶었다.
그러나 위의처럼 셋팅을 했지만 아래와 같이 각 env에 설정된 VITE_API_SERVER_URL 값을 불러오지 못했다.

공식 문서에는 내용이 없지만 vite에서 env를 root가 아닌 특정 폴더에서 관리한다면 vite에게 알려줘야 한다.
📌 해결
[AS-IS]
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import tsconfigPaths from "vite-tsconfig-paths";
import svgr from "vite-plugin-svgr";
import jotaiDebugLabel from "jotai/babel/plugin-debug-label";
import jotaiReactRefresh from "jotai/babel/plugin-react-refresh";
export default defineConfig(({ command, mode }) => {
return {
plugins: [
svgr(),
react({ babel: { plugins: [jotaiDebugLabel, jotaiReactRefresh] } }),
tsconfigPaths(),
],
};
});
[TO-BE]
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import tsconfigPaths from "vite-tsconfig-paths";
import svgr from "vite-plugin-svgr";
import jotaiDebugLabel from "jotai/babel/plugin-debug-label";
import jotaiReactRefresh from "jotai/babel/plugin-react-refresh";
export default defineConfig(({ command, mode }) => {
return {
//아래 코드 추가
envDir: "./env/",
plugins: [
svgr(),
react({ babel: { plugins: [jotaiDebugLabel, jotaiReactRefresh] } }),
tsconfigPaths(),
],
};
});
전체적인 디렉토리 구조는 아래와 같습니다.

마무리
공식 문서에 없는 내용이라 많이 헤맸기 때문에 저와 같은 상황이신 분들에게 도움이 됐으면 좋겠습니다.🙏
반응형
'프론트엔드' 카테고리의 다른 글
| 리액트 네이티브의 새로운 아키텍쳐는 뭘까? (1) | 2026.07.04 |
|---|---|
| Module not found: Error: Can't resolve 'next-swc-loader' in ~ (0) | 2023.02.03 |
Comments
