๐ ๋ถ๊ฝ ํ๊ฒ ๋น ๋ฅธ ๋ฒ๋ค
Parcel์ ์์ปค ํ๋ก์ธ์ค๋ฅผ ์ด์ฉํ์ฌ ๋ฉํฐ์ฝ์ด ์ปดํ์ผ์ ๊ฐ๋ฅ์ผ ํ๊ณ , ์ฌ์ง์ด ์ฌ์์ ํ๋ผ ํด๋ ๋น ๋ฅธ ๋ฆฌ๋น๋๋ฅผ ํ ์ ์๋๋ก ํ์ผ์์คํ ์บ์๋ฅผ ๊ฐ๊ณ ์์ต๋๋ค.
๐ฆ ๋ชจ๋ ์ ์ ๋ฒ๋ค
Parcel์ JS, CSS, HTML, ํ์ผ ์ ์ , ๊ทธ ์ธ ๋ง์ ๊ฒ๋ค์ ๋ํ ์ง์์ ์ฆ์ ์ ๊ณตํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ ์์ด์.
๐ ์๋ ๋ณํ
ํ์ํ๋ค๋ฉด Babel, PostCSS, PostHTML์ ์ฌ์ฉํ๋ ์ฝ๋๋ ์๋์ผ๋ก ๋ณํ๋ฉ๋๋ค. ์ฌ์ง์ด
node_modules
๊น์ง๋.
โ๏ธ ์ค์ ์๋ ์ฝ๋ ๋ถํ
Parcel์ ๋์ import()
๋ฌธ์ ์ฌ์ฉํด์ ์ถ๋ ฅ ๋ฒ๋ค์ ๋ถํ ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ด๊ธฐ ๋ก๋์
ํ์ํ ๊ฒ๋ค๋ง ๋ก๋ํ ์ ์์ต๋๋ค.
๐ฅ ๋น ๋ฅธ ๋ชจ๋ ๊ต์ฒด(HMR)
Parcel์ ์ค์ ์์ด ์๋์ผ๋ก ๊ฐ๋ฐ์ค์ ๋ณํ๋ฅผ ๊ฐฑ์ ํ์ฌ ๋ธ๋ผ์ฐ์ ์ ๋ํ๋ ๋๋ค.
๐จ ์น์ ํ ์๋ฌ ๋ก๊ทธ
Parcel์ ์ค๋ฅ ๋ฐ์์ ๋์์ด ๋๋๋ก ๋ฌธ์ ๋ฅผ ์ ํํ ์ง์ด์ฃผ๋ ๊ตฌ๋ฌธ ๊ฐ์กฐ ์ฝ๋ ํ๋ ์์ ์ถ๋ ฅํฉ๋๋ค.
Hello World
์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ์ง์ HTML ํ์ผ๋ก ์์ํ์ธ์. Parcel์ด ์์กด์ฑ์ ๋ฐ๋ผ ์ ์ฒด ์ฑ์ ๋น๋ํฉ๋๋ค.
โ๏ธ index.html
<html>
<body>
<script src="./index.js"></script>
</body>
</html>
๐ index.js
// ๋ค๋ฅธ ์ปดํฌ๋ํธ ์ํฌํธ
import main from './main';
main();
๐ main.js
// CSS ๋ชจ๋ ์ํฌํธ
import classes from './main.css';
export default () => {
console.log(classes.main);
};
๐ main.css
.main {
/* ์ด๋ฏธ์ง ํ์ผ ์ฐธ์กฐ */
background: url('./images/background.png');
color: red;
}
parcel index.html
๋ก ๊ฐ๋ฐ์ฉ ์๋ฒ๋ฅผ ๊ตฌ๋ํ์ธ์. JavaScript, CSS, images, ๊ทธ ๋ฐ์ ๋ค์ํ ๊ฒ๋ค์ด
์ ๋๋ก ์ํฌํธ ๋ ๊ฒ๋๋ค! ๐
๋ฒค์น๋งํฌ
๋ฒ๋ค๋ฌ | ์๊ฐ |
---|---|
browserify | 22.98์ด |
webpack | 20.71์ด |
parcel | 9.98์ด |
parcel - ์บ์ ์ฌ์ฉ | 2.64์ด |
๋ฌด๋ฆฌ ์๋ ํฌ๊ธฐ, 1726๊ฐ์ module์ ํฌํจํ, ๋ฏธ ์์ถ 6.5M์ app ๊ธฐ์ค. 4๊ฐ์ ๋ฌผ๋ฆฌ CPU๊ฐ ์๋ 2016ํ MacBook Pro์์ ๋น๋๋จ.