[Next] 상황에 따라 다르게 env파일 사용하기

Ell!·2022년 6월 29일
0

next

목록 보기
7/7

상황에 따라 다르게 env 사용하기

개발하면서 빌드하고 실제 서버를 돌려보면 어떻게 되나? 하고 궁금할 때가 있다. 그럴 때는 보통 테스트 서버를 만들어서 체크해보는데, 이 때 env파일을 그때그때 바꾸기가 귀찮아 package.json의 명령어를 커스텀해서 상황에 따라 다르게 env파일을 사용하곤 한다.

Next로 migrate하면서 명령어에 따라 다르게 env를 사용하는 방법을 간략하게 적어보려고 한다.

  "scripts": {
    "dev": "cross-env NODE_OPTIONS='--inspect' next dev",
    "start": "next start",
    "build:test": "env-cmd -f .env.test next build",
    "build:prod": "env-cmd -f .env.production next build",
  },

env-cmd라는 라이브러리를 사용해주자. env-cmd는 env와 함께 node 명령어를 쓸 수 있게 해주는 라이브러리다.

구글링해서 나온 대부분의 글이 위처럼 하면 된다고 나와있었다. 하지만 모두 실패. 안 되는 것이 아니라 build만 하면 .env.production을 사용했다.

문제 해결

https://github.com/vercel/next.js/discussions/12077#discussioncomment-28231

문제점을 찾았다. .env파일이 root directory에 있으면 next가 자동으로 이걸 가져간다고 한다. enviroments라는 폴더를 만들어서 그 안에 .env파일을 넣어주었다.

  "scripts": {
    "build:test": "env-cmd -f environments/.env.test next build",
    "build:prod": "env-cmd -f environments/.env.production next build",
  },

잘된다. 😁

profile
더 나은 서비스를 고민하는 프론트엔드 개발자.

0개의 댓글