• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

DefinePlugin

21.06.22 16:15 작성 조회수 228

2

DefinePlugin의 경우
환경 의존적인 정보를 (ex-환경에따라 API주소가 다르다거나) 소스가 아닌곳에서 관리하기 위함이라고 하셨는데,

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"), //
})

그렇다면 api.domain : JSON.stringify("http://dev.api.domain.com"),

이부분을

api.domain :   process.env.NODE_ENV == 'production' ?

JSON.stringify("http://pro.api.domain.com")

: JSON.stringify("http://dev.api.domain.com") 

이런식으로 사용가능해야 배포할때마다 코드수정 줄일수 있지않나요?

(어떤식으로 효율이 날수있게 사용하는지 잘모르겠달까요..)

그리고 webpack config 같은경우는 git에 올라가서 공개될지 모르는데 .env로 관리하는게 보안적으로 더 안전하지 않나요?

답변 1

답변을 작성해보세요.

3

네 그렇습니다. 환경에 따라 다른 값을 넣어주어야 합니다. 저는 아예 환경별로 웹팩 설정 파일을 만들어서 사용하고 있어요.

  • webpack --config webpack.config.prod.js
  • webpack --config webpack.config.beta.js

.env를 사용하는 방법도 좋습니다.