-
카테고리
-
세부 분야
프론트엔드
-
해결 여부
미해결
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을 사용하지 않아도 되는게 아닌지 궁금합니다.
답변을 작성해보세요.
0
김정환
지식공유자2022.03.09
"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을 사용하셔야 합니다.
답변 1