• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

안녕하세요 웹팩 관련질문입니다.

22.08.14 22:19 작성 조회수 168

0

안녕하세요! 웹팩 관련 질문이있습니다.

제꺼 빌드용량이 3MB로 엄청크더라구요. 그래서 원인을 알아보니 isDevelopment가 계속 development 모드로 빌드 되는게 이유였습니다. devtool설정은 아래와 같이했는데 development이다 보니까 계속 inline source map 으로 작동해서 파일크기가 큰것같더라고요.

isDevelopment ? 'inline-source-map' : 'hidden-source-map'

차이점을 보니 npm script가 start는 webpack serve, build는 webpack만 되어있는 상태였어요. 그래서

start 에는 webpack serve --env development

build에는 NODE_ENV=production webpack 를 적어주니까 production모드로 되고, 300kb로 떨어진걸 확인했어요.  

 

 

그런데 start는 --env development이고, build는 NODE_ENV=production인 이유가 있나요?

둘다 --env development, --env production을 적거나

NODE_ENV=development, NODE_ENV=production으로 하는것과 차이가 있나요?

 공식문서에서는 webpack dev와 prod로 파일을 다르게하는 아래방법밖에 못찾았는데,

 "start": "webpack serve --open --config webpack.dev.js",
"build": "webpack --config webpack.prod.Js

제로초님은 어떤걸 보고 하셨는지 궁금합니다.

그리고 EnvironmentPlugin은 적지 않아도 console.log(isDevelopment)를 찍어보면 process.env.NODE_ENV 상태가 출력되고 빌드/실행도 잘되던데, 아래와같이 추가해야하는 이유가 있는지도 궁금합니다.

new webpack.EnvironmentPlugin({

NODE_ENV: isDevelopment ? 'development' : 'production',

답변 1

답변을 작성해보세요.

1

start는 개발모드입니다. 개발모드에서 production으로 하면 핫 리로딩이나, 디버깅을 할 수 없습니다.

environmentPlugin은 웹팩이 아니라 리액트에 있는 process.env를 바꿔주는겁니다.

Kyo님의 프로필

Kyo

2022.08.14

아아 개발모드도 production으로 하면 안되냐는것이 아니고

 

 

start에는 --env development,  build에는 NODE_ENV=production를 앞에 다르게 적기때문에

NODE_ENV와 --env의 차이가 있는지 궁금했습니다!

해봐야할것같긴 한데 차이가 없을 것 같긴 합니다.