NOW OR NEVER

[12주차] 4. Webpack(2) 본문

강의/제로베이스 프론트엔드 99일

[12주차] 4. Webpack(2)

LAURA 2021. 10. 22. 12:46
반응형

Webpack

Chunk

  • bundle 파일이 특정 기준을 통하여 몇 개의 파일로 나뉘어진 형태
  • webpack.config.js에서 optimization{}으로 설정 후 yarn build
  • runtime chunk {}
  • 모듈들에 대한 내용만 남고 분리
  • vendor chunk {}
  • vendor : 외부 패키지 모듈 ex) jQuery
  • 외부 모듈만 분리하여 관리
  • hash 값이 바뀌지 않아 hash 값을 통해 효율 관리 가능

chunkhash

  • 나눠진 파일 별로 hash 값 부여
  • 모듈을 제외한 chunk에는 영향을 주지 않음

소스 코드 최적화

  • 최종적으로 사용자에게 전달하는 리소스는 최적화 하여 전달해야 함
  • 모듈을 사용하지 않고 직접 소스 코드 최적화 방법
  • 사용자를 위해 최적화 하는 것이므로 production mode에 해당

Minification & Mangling

  • 코드 형태 압축
    1. 어플리케이션이 동작하는 과정에 관여하지 않는 코드들 제거 ex) 주석, console.log 등
    1. 표현 간결화
    1. 표현의 난독화(Mangling) : 변수들을 알파벳 하나 등의 이름 최소화
  • 뒤에 객체형태로 둘 경우 선택적으로 일부분만 minification 함
  • 뒤에 Boolean 타입일 경우 할 수 있는 모든 최적화 실시
  • 참조 링크 : https://github.com/jantimon/html-webpack-plugin#minification

css 코드 최적화

js 최적화

  • terser 모듈 활용
  • optimization 에서 minimize :true, minimize : [new TerserWebpackPlugin()] 추가

loader

  • use 안에 loader: 로더 종류

POSTCSS

autoprefixer

  • 자동으로 prefixer 추가
  • prefixer : 접두사
  • vendor prefixer : 접두사를 제공하는 공급사

BROWSERLIST

  • 지원하고자 하는 브라우저들에 대한 설정
  • https://github.com/browserslist/browserslist
  • autoprefixer 뿐만 아니라 다른 plugin에서 사용
  • targetbrowser : 지원 범위
  • 특정 범위 조건을 생성하고 그 조건을 조합해서 구현

Tips

  • jQuery 설치 : yarn add jquery
  • script 명령어
  • development mode 명령어 : dev -> 메모리 상에만 있음(파일 지움, 생성 없음)
  • production mode 명령어 : build

'강의 > 제로베이스 프론트엔드 99일' 카테고리의 다른 글

[12주차] 5. Vue.js  (0) 2021.10.22
[12주차] 3. Webpack  (0) 2021.10.20
[12주차] 2. MarkDown  (0) 2021.10.19
[12주차] 1. Typescript 복습(3)  (0) 2021.10.18
[11주차] 5. Typescript 복습(2)  (0) 2021.10.17
Comments