[React] Webpack 환경에서 환경변수 사용

2022. 3. 29. 19:41·React/실험실
반응형

1. dotenv?

React에서 .env 에서 설정한 변수를 사용하려고 하는데 알 될 경우 일반적으로 검색했을 때 dotenv를 사용해서

설치해서 해결하는 글이 많다. 

 

dotenv를 설치하고 App.js(혹은 다른 프로젝트 어딘가)에서 dotenv.config()를 호출하면 많은 오류가 나온다. 

완전 동일하게 나올 수 있고 아닐 수 있지만, 일반적으로 fs, os, path쪽 오류가 나오게 된다. 

 

dotenv는 무의존성 모듈로 Node.js에서 기본적으로 사용할 수 있게 만들어진 패키지이다. 

Node.js에서는 os, fs, path가 모두 제공되기 때문에 os와 path를 통해 파일을 찾아 fs를 사용해 읽어들인다.

 

하지만 React에서는 os, fs, path를 기본적으로 제공하지 않기 때문에 프로젝트 내부에선 사용할 수 없다. 

 

2. dotenv 사용하기 

React 프로젝트 내부에서는 os, fs, path 패키지가 없기 때문에 Webpack의 DefinePlugin을 사용해서 

전역변수를 설정해줄 수 있다. 

 

npm install -d --save dotenv

우선 당연히 dotenv 패키지를 설치해준다. 

 

그리고 .env 파일에 내가 필요로하는 변수를 선언해준다. 

 

webpack.config.js에서 dotenv와 webpack을 불러오고 dotenv.config()를 실행해준다. 

 

plugins에서 Webpack의 DefinePlugin을 사용해서 process.env를 전역에서 접근할 수 있도록 설정한다. 

 

3. dotenv-webpack 사용하기 

dotenv 패키지 말고 좀더 간단하게 사용하는 방법도 있다. 

npm install -d --save dotenv-webpack

 

dotenv-webpack 패키지를 사용하면 특별한 추가 설정없이 호출해서 plugins에 넣어주면 바로 사용가능하다.

반응형
저작자표시 비영리 변경금지 (새창열림)

'React > 실험실' 카테고리의 다른 글

[React] Babel - 깊은 설정  (0) 2022.04.05
[React] Babel  (2) 2022.04.04
[React] Code Splitting  (1) 2022.03.24
[React] html-webpack-plugin?  (1) 2022.03.23
[React] webpack 과 babel로 프로젝트에 폰트 파일 적용하기  (0) 2022.03.22
'React/실험실' 카테고리의 다른 글
  • [React] Babel - 깊은 설정
  • [React] Babel
  • [React] Code Splitting
  • [React] html-webpack-plugin?
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    알고리즘
    ReactNative
    next.js
    리액트
    타입스크립트
    CCNA
    Docker
    javascript
    영어독학
    리얼클래스
    redux
    타일러영어
    Node.js
    리얼학습일기
    다이소
    네이버 부스트캠프
    자바스크립트
    덤프
    바질 키우기
    영어회화
    webpack
    프로그래머스
    react
    바질
    ChatGPT
    CSS
    네트워크
    typescript
    식물
    Babel
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
[React] Webpack 환경에서 환경변수 사용
상단으로

티스토리툴바