Rollup
Rollup
ํ์ค ๋ชจ๋ ์์คํ ๋ฌธ๋ฒ(esm)์ผ๋ก ์์ฑ๋ ์ฌ๋ฌ ํ์ผ๋ก ์ด๋ฃจ์ด์ง ์ฝ๋๋ฅผ ํ๊ฐ ํน์ ๋ช๊ฐ๋ก ๋ฌถ์ด์ฃผ๋ ์ญํ
๋ฌถ์ด์ฃผ๊ธฐ ๋๋ฌธ์ ๋ฒ๋ค๋ฌ๋ผ ํจ
๋ฌถ์ด์ฃผ๋ ๋์์ ํ๋ฉด์ ์ฌ๋ฌ๊ฐ์ง ์ผ๋ค(Compile, Minify ๋ฑ)์ ํจ๊ป ์ํํ๊ธฐ ์ํด ์ฌ๋ฌ ํ๋ฌ๊ทธ์ธ์ ํ์ฉ
๋ณดํต ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์์ ์ํ ๋ฒ๋ค๋ฌ๋ก ๋ง์ด ์ฌ์ฉ๋จ
์คํ ์์ค์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋ฒ๋ค๋ฌ
๋กค์ ์ ์ง์ ์ฌ์ฉํ ์๋ ์์ง๋ง, ๋กค์ ์ ์ฌ์ฉํ๋ ๋ค๋ฅธ ๋๊ตฌ์์ ๋กค์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์์ด ์ฌ์ฉ๋ฐฉ์์ด๋ ์ค์ ์ ๋ํ ํ์ต์ด ์ค์
Terser๋ ๋ณ์ ์ด๋ฆ์ ์๊ฒ ๋ง๋ค๊ณ , ๊ณต๋ฐฑ๊ณผ ์ฃผ์ ์ ๊ฑฐ, ์ฌ์ฉํ์ง ์๋ ์ฝ๋์ ๊ฑฐ
์ฐ๋ฆฌ๊ฐ ์ง์ Terser๋ฅผ ์ฌ์ฉํ ์ผ์ ์ ๋ค. ์ด๋ค ์ญํ ์ ํ๋์ง ๋ช ํํ๊ฒ ์ธ์ง
cjs - commonjs (Node.js)
Node.js๊ฐ ์ฑํํ ๋ชจ๋๊ด๋ฆฌ ๋ฐฉ์
module.exports = ~~~
const plusONe = require("๊ฒฝ๋ก")
esm - es module (ํ์ค ์คํ)
์ต์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒ์ ์์ ์ง์
Node.js์์๋ .mjs ํ์ฅ์๋ฅผ ํตํด ์ง์
rollup.config.js
๋ฒ๋ค๋ง์ ์ด๋ค ํ์ผ์ ๊ฐ์ง๊ณ ์ด๋์๋ค ์ถ๋ ฅํ ๊ฒ์ธ์ง ์ง์ ํด์ฃผ์ด์ผ ํ๋ค.
๋กค์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก node ํ๊ฒฝ์์ ์คํ๋ ๊ฑฐ๊ธฐ ๋๋ฌธ์ cjs๋ฃฐ์ ๋ฐ๋ฆ
Terser
Javascript mangler and compressor toolkit "์๋ฐ์คํฌ๋ฆฝํธ mangler ๋ฐ ์์ถ๊ธฐ ๋๊ตฌ"
mangler: ๋ง๊ฐ๋จ๋ฆฌ๋ ์ฌ๋, ๊ณ ๊ธฐ๋ฅผ ์จ๋ ๊ธฐ๊ณ
์ฝ๋๋ฅผ ์คํ ๊ฐ๋ฅํ ์์ค์ผ๋ก ๋ง๊ฐ๋จ๋ฆฌ๋ค.
์ฌ๋์ด ์ดํดํ๊ธฐ ์ด๋ ต์ง๋ง ์ปดํจํฐ๊ฐ ์คํํ๊ธฐ์ ๊ฐ๋ฅํ ์์ค์ผ๋ก
Terser๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ํ ์ ๊ณ ํ์ค minifier
๋ณ์ ์ด๋ฆ์ ์๊ฒ, ๊ณต๋ฐฑ๊ณผ ์ฃผ์ ์ ๊ฑฐ, ์ฌ์ฉํ์ง ์๋ ์ฝ๋ ์ ๊ฑฐ ๋ฑ
์ปค๋งจ๋๋ผ์ธ ๋ช ๋ น์ด ํน์ Node.js API๋ก ์ฌ์ฉ ๊ฐ๋ฅ
๋ณดํต ์ง์ ์ฌ์ฉํ์ง ์๊ณ , ๋ง์ ๋ค๋ฅธ ๋๊ตฌ๋ค์์ ์ฌ์ฉ๋จ
Webpack, Parcel, angular
์ปค๋งจ๋๋ผ์ธ
terser [input files] [options]
pnpm exec terser input.js --compress --mangle --output dist/output
Rollup์ผ๋ก ๋ฒ๋ค๋ง ํ ๋ terser ์ถ๊ฐ
Last updated