본문 바로가기
기타

웹팩

by 엉덩이가 무거운 개발자 2021. 10. 15.

웹팩 ?

하나의 웹서비스를 구성하는 모든 파일들 (html 제외) ( css ,js ,image 들을 각각의 모듈로 본다) 을 해석한다음 
그 파일들을 하나의 파일로 합쳐줌(모듈 번들링)
이것이 바로 웹팩.


웹팩 사용 전

웹팩 사용 전

 

무수히 많은 파일들을 요청하고 응답한다.
수백개의 파일들이 있다면 느릴 것이고, 지구 반대편에서 요청을하면 더 더욱 응답이 느릴 것이다.




웹팩 사용 후

웹팩 사용 후

파일들을 하나의 파일에 합쳐준다. 이것을 모듈 번들링이라고 한다.

페이지 로딩속도가 빨라질 것이다.

 


loader 로더가 무엇일까?

js가 아닌 파일들에 대해서 ( CSS, Images, 폰트 등)
웹팩안에서 합쳐(번들링) 줄 수 있게 적용해주는 속성,

(css 로더를 적용한 상태에서 웹팩 build를 하면 빌드 결과물에 css 코드가 포함)

쉽게말하면, 웹팩 내부에서 js가 아닌 파일들을 인식 할 수 있게 해주는 것이 바로 loader 
그래서 js 파일에서 import 해서 사용가능한것.

로더는 오른쪽에서 왼쪽으로 해석이된다 (순서중요)

웹팩 빌드 과정

 


핫리로딩?

현재 페이지에서 아무거나 바꿀때 마다, 웹팩을 다시 실행해주어야한다 .

즉,
바꿀때마다 npm run build 를 해주어야한다 .

그 귀찮음을 방지해주기 위해서 

"webpack-dev-server": "^4.0.0"

- 프록시 서버의 역할도 해준다.

- 핫 리로딩

 

핫 리로딩을 하려면

ReactRefreshWebpackPlugin  을 npm i 하자

 

webpack.config.ts 에서 import

import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin';

 

webpack-dev-server

SPA 싱글페이지 애플리케이션은 페이지가 하나다 index.html

historyApiFallback : true

존재하기 때문에  없는 주소를 진짜 있는 주소마냥 사용하기 가능.

페이지 이동하는 것 처럼보임 원래는 계속 

localhost:3060에 머물러있음. 



참고
https://www.youtube.com/watch?v=WQue1AN93YU

 

 

'기타' 카테고리의 다른 글

코드스플리팅  (0) 2021.10.19
CORS.  (0) 2021.09.08
프론트엔드 개발자의 협업 ( 더미데이터 dummy data )  (0) 2021.08.04