[Next.js] 환경변수가 undefined 일 때

With·2021년 10월 12일
4

Trouble Shooting

목록 보기
2/4

문제

next.js에서 지원하는 환경변수를 사용하기 위해서 .env.development 파일을 만들어서 위와 같이 작성했다.

name=DEVELOPMENT
NEXT_PUBLIC_API_URL=http://localhost:3001

근데, 이 변수를 컴포넌트에서 사용하고자 했을 때 undefined가 표시된다.

const todos: NextPage = () => {
	const API_URL = process.env.NEXT_PUBLIC_API_URL
    console.log(API_URL) // undefined
}

브라우저에서 .env파일을 통해 환경변수를 사용할 때는 process.env.NEXT_PUBLIC_변수명으로 이름을 지어야 한다. Node.js 환경에서는 process.env.변수명 으로 변수 이름을 정한다.

해결 방법

next.config.js의 내용을 수정해야 한다. 아래 내용을 추가 후 서버 off 후에 다시 on하면 정상적으로 환경변수를 사용할 수 있다.

module.exports = {
  reactStrictMode: true,
  // env 내용 추가
  env: {
    BASE_URL: process.env.BASE_URL,
  },
};
profile
주니어 프론트엔드 개발자 입니다.

1개의 댓글

comment-user-thumbnail
2023년 1월 4일

정보 감사합니다 !

답글 달기