3. Minification & Mangling
๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก๋๋ resource์์ด ์ปค์ง๋ฉด ์ฌ์ฉ์๋ค์๊ฒ ์ ๋ฌ๋๋ ์ปจํ ์ธ ๋์ฐฉ์๊ฐ์ด ๊ธธ์ด์ง.
๊ทธ๋์, ์ต์ข ์ ์ผ๋ก ์ฌ์ฉ์์๊ฒ ์ ๋ฌ๋๋ ๋ฆฌ์์ค๋ค์ ํํ๋ ๋ถํ์ํ ์์๋ฅผ ์ ๊ฑฐํ ์ต์ ํ๋ ์ํ๊ฐ ๋์ด์ผํ๋๋ฐ, ์์ค์ฝ๋์ ๋ฆฌ์์ค๋ค์ ์ต์ ํํ ๋ ์ด๋ป๊ฒ ํ๋์ง ์ดํด๋ณด๊ธฐ.
๋ชจ๋๊ฐ์ด production์ธ ๊ฒฝ์ฐ, ์์ค์ฝ๋๊ฐ ์์ถ๋ ์ํ๋ฅผ ํ์ธํ์๋๋ฐ mode๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ง์ ์ต์ ํํจ์ผ๋ก์จ js๋ฟ๋ง์๋๋ผ ๋ค๋ฅธ ์์๋ค๋ ์ด๋ป๊ฒ ์ต์ ํ ์ํค๋์ง ์์๋ณด์.
์ฝ๋์ ํํ๋ฅผ ์์ถ
์์ถ๊ณผ์ ์์ ์ผ์ด๋๋ ์ผ
Minification
์ดํ๋ฆฌ์ผ์ด์ ์ด ๋์ํ๋ ๊ณผ์ ์ ๊ด์ฌํ์ง ์๋ ์์ ์ ๊ฑฐ(์ฃผ์, console.log,..) - ์ฉ๋์ด ์ค์ด๋ฌ
ํํ์ ๊ฐ๊ฒฐํ (๋ค์ฌ์ฐ๊ธฐ ๋๋ ๋์ด์ฐ๊ธฐ ๊ณต๋ฐฑ์ ์ต๋ํ ์งง๊ฒ, ๋ถ๊ธฐ๋ฌธ์ ๋ธ๋ญํ์ ๋์ ์ผํญ์ฐ์ฐ์๋ก ํํ ๋ฑ)
Minification: ํํ์ ๋๋ ํ(uglify)
๋ณ์, ํจ์ ํด๋์ค ์ด๋ฆ๊ฐ์ ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ ํํ์ ์ํ๋ฒณ ํ๋๊ธ์๋ก ์นํ.
์ธ๋ถ์์ ์ฝ๋๋ฅผ ๋ดค์๋ ์ฝ๋๋ฅผ ๋ถ์ํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ฌ, ์ฉ๋์ค์
์์๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น๋ฉด, ์์ค์ฝ๋๊ฐ ์์ถ๋ ํํ๋ก ๋์ค๊ฒ ๋๋๋ฐ ๋คํธ์ํฌ์ ์ด ์ต์ ํ๋ ๋ฆฌ์์ค๊ฐ ์ ๋ฌ์ด ๋๊ณ ์ต์ ํ๋ ๋ฆฌ์์ค๋ค์ด ์บ์ฑ์ผ๋ก ์ ์ฅ๋๋ฉด ์ฌ์ฉ์๋ค์ด App์ ์ฌ์ฉํ ๋ ๋ ๋น ๋ฅด๊ฒ ๋์์ํฌ ์๊ฐ ์๋ค.
์ค์ต
HTML Markup ์ต์ ํ
html-webpack-plugin์ค์ ์์ ์ ๊ณต๋๋ key์ค minify์ด๋ผ๋ key๊ฐ ์ ๊ณต๋จ.
mark up ์ด ์์ฑ๋ ๋ mark up ์ปจํ ์ธ ๊ฐ ์ต์ ํ๋๋ ๊ณผ์ ์ ํจ๊ป ์งํํจ
๊ฐ์ฒดํํ๋ก ์ง์ ํด์ ์ ํ์ ์ผ๋ก (์ผ๋ถ๋ง) ์ต์ ํ๋ฅผ ์งํํ ์ ์๋ค.
html-webpack-plugin readme.md ๋ฌธ์ ํ์ธ. (minify๊ฒ์ ์์ธ ๋งํฌ ํด๋ฆญ)
์ค์ต์์๋ ๊ณต๋ฐฑ์ ์ค์ด๋๊ฒ, doctype์ ์งง๊ฒ ์ฌ์ฉํ๋ ๊ฒ, type attribute ์ ๊ฑฐ ์ฌ์ฉ
plugin ์ minify key์ ์ต์ ์ถ๊ฐ
๋น๋ ํ, ๊ฒฐ๊ณผํ์ธ
CSS ์ต์ ํ
cssํ์ผํฌ๊ธฐ ์์ถ(css-nano compressor)
์คํ์ผ์ ๋ณด๋ค ๋น ๋ฅด๊ฒ ์ ๊ณต
css-nano๋ฅผ ์ฌ์ฉํ๋ฉด css๋ฅผ ์ต์ํ ํ ๊ฒฐ๊ณผ๋ฌผ์ ์ป์ ์ ์๊ณ , ์์ถ๋ฅ ์ ๋ณด๋ ํ์ธ์ด ๊ฐ๋ฅ
css-nano module์ค์นํ๊ธฐ
webpack plugins ์ค์
plugin์ ์ธ๋ถ ๋ชจ๋์ด๋ฏ๋ก ๋ถ๋ฌ์์ผํจ
build๊ฒฐ๊ณผ (dist/~~.cssํ์ธํด๋ณด๊ธฐ) => ์์ถ ์ ๋์๋ค!
JS์ต์ ํ
css์ฒ๋ผ js compressor ์ฌ์ฉ
๋ํ
uglify.js
babel-minify
terser
์นํฉ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ฑํํ๋ terser ์ฌ์ฉํด๋ณผ ๊ฒ
์นํฉ์ ์์กด์ฑ์ ํฌํจ๋ ๋ชจ๋์ด๊ธฐ ๋๋ฌธ์ ๋ณ๋๋ก terser๋ฅผ ์ค์นํ ํ์๋ ์๊ณ , optimizationํค์ ์์ฑ ํด์ฃผ๋ฉด๋๋ค.
optimization ๋ด๋ถ์ minimize๋ผ๋ ํค๋ฅผ true๋ฅผ ํ๋ฉด, ์นํฉ ๋ด๋ถ์์ terser๋ฅผ ์คํ์์ผ ์์ถ ์งํ.
minimizer ํค์์ ์ด๋ค compressor๋ฅผ ์ฌ์ฉํ ์ง ๋ณ๋๋ก ์ค์ ํ ์ ์์.(uglify, babel-mini)
terser๋ฅผ ์์ฑํ ์ด์ ?: terser customizeํ๊ธฐ ์ํด์
minimize๋ง true๋ก ํด๋๋ฉด ๊ธฐ๋ณธ๋์๋ง ํ๊ธฐ ๋๋ฌธ.
๋น ๋ฅด๊ฒ cache๋๋๋ก ์ค์ ํจ(๋น๋ ๋๋ ์๊ฐ ์ค์)
ํน์ terserํ์ธํ๊ณ ์ถ์ผ๋ฉด, node_modulesํ์ธ! (webpack์ค์นํ ๋ ๊ฐ์ด ์ค์น๋์์)
terser-webpack-plugin ์ค์น(์ธ๋ถ ํ๋ฌ๊ทธ์ธ)
webpack.config.js ์์
Last updated
Was this helpful?