• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

NODE_ENV 질문

22.02.20 13:32 작성 조회수 251

0

이전 플러그인 강의내용에서 DefinePlugin을 적용하게되면 process.env.NODE_ENV의 값이 webpack설정파일의 mode값으로 설정된다고 이해했습니다. 그래서 mode : "development" 를 설정하게되면 NODE_ENV값이 "development"로 설정되구요.

근데 이번강의에서 production환경과 development환경을 구분짓기위해 아래와 같이 설정파일을 수정하고

const mode = process.env.NODE_ENV || "development" // 기본값을 development로 설정

module.exports = {

mode,

 

}

build 명령어부분에 NODE_ENV = "production" 를 설정해주셨는데 이렇게 설정하면  DefinePlugin을 사용하지 않아도 되는게 아닌지 궁금합니다.

답변 1

답변을 작성해보세요.

0

"DefinePlugin을 적용하게되면 process.env.NODE_ENV의 값이 webpack설정파일의 mode값으로 설정된다고 이해했습니다"

이 부분을 오해하신것 같습니다.

DefinePlugin은 빌드 시점의 값을 어플리케이션 코드에 넣기 위해 사용하는데요. 기본적으로 웹팩 설정 옵션 중 mode 값을 NODE_ENV 란 변수로 넣어줍니다. 이 외에 필요한 값이 있다면 옵션 객체로 전달하고요.

new webpack.DefinePlugin({
  VERSION: JSON.stringify("v.1.2.3"),
  PRODUCTION: JSON.stringify(false),
  MAX_COUNT: JSON.stringify(999),
  "api.domain": JSON.stringify("http://dev.api.domain.com"),
})

명령어를 실행할때 NODE_ENV 값을 설정하신것과 무관하게 빌드시점의 값을 어플리케이션에서 사용하려면 DefinePlugin을 사용하셔야 합니다.