ํฐ์คํ ๋ฆฌ ๋ทฐ
๐จ Babel
Babel ๊ณต์ ํํ์ด์ง (https://babeljs.io/)๋ฅผ ์ด๋ฉด Babel is a JavaScript compiler๋ฅผ ๋ณผ ์ ์๋ค.
์ฆ, Babel์ ์๋ฐ์คํฌ๋ฆฝํธ ์ปดํ์ผ๋ฌ๋ก, ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ(ES6, ES7, ES8)์ผ๋ก ์์ฑํ ์ฝ๋๋ฅผ ๊ตฌํ ๋ธ๋ผ์ฐ์ ์์๋ ์๋ํ ์ ์๋ ES5๋ฒ์ ์ผ๋ก ๋ณํํ๋ ๋๊ตฌ์ด๋ค.
๐ป Babel ์ค์น
1. ํฐ๋ฏธ๋์ npm i -D @babel/core @babel/preset-env ์ ๋ ฅ
2. ๋ฃจํธ๊ฒฝ๋ก์ .babelrc.js ํ์ผ ์์ฑ ํ ๋ค์ ์ฝ๋ ์ ์ฅ
module.exports = {
presets: ['@babel/preset-env']
}
์ด๋ ๊ฒ ์๋ฃ๋๋ฉด ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฐ๋ฒจ์ ํตํด es5๋ฌธ๋ฒ์ผ๋ก ๋ณ๊ฒฝ๋์ด ๋์ํ๊ฒ ๋๋ค.
3. package.json ํ์ผ์ ๋ค์ ๋ด์ฉ ์ถ๊ฐ
"browserslist": [
"> 1%",
"last 2 versions"
]
}
postcss๋ฅผ ์ ์ฉํ ์ ์ด ์๋ค๋ฉด ์ด๋ฏธ ์์ ๋ถ๋ถ์ด๋ฏ๋ก ์๋ ๊ฒฝ์ฐ์๋ง ์ถ๊ฐํ๋ฉด ๋๋ค.
4. ํฐ๋ฏธ๋์ npm run dev ์ ๋ ฅ
ํ๋ก์ ํธ๋ฅผ ์คํํ์ฌ ์ค๋ฅ ์์์ ํ์ธํ์
5. ํฐ๋ฏธ๋์ npm i -D @babel/plugin-transform-runtime ์ ๋ ฅ
babel์ async await ๋ฌธ๋ฒ์ด ๊ธฐ๋ณธ์ค์ ๋ง์ผ๋ก๋ ์ ๊ณต๋์ง ์๊ธฐ ๋๋ฌธ์ ์ด ํจํค์ง๋ฅผ ์ค์นํด์ฃผ์ด์ผ ํ๋ค.
6. babelrc.js ํ์ผ์ ๋ค์ plugins ๋ด์ฉ ์ถ๊ฐ
module.exports = {
presets: ['@babel/preset-env'],
plugins: [
['@babel/plugin-transform-runtime']
]
}
7. ์ ์ ์ฉ๋์๋์ง ํ์ธํ๊ธฐ ์ํด main.js ํ์ผ์ ๋ค์์ ์ถ๊ฐ
async function test() {
const promise = Promise.resolve(123)
console.log(await promise)
}
test()
์ฝ์์ 123์ด ๋์จ๋ค๋ฉด async await๊ฐ ์ ์์ ์ผ๋ก ๋์๊ฐ๋ ๊ฒ์ด๋ค.
'Bundler > Parcel' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Parcel์ ์ปค๋งจ๋ ๋ผ์ธ ์ธํฐํ์ด์ค(CLI) ๐จ (0) | 2022.11.29 |
---|---|
[Parcel] ๋ฒค๋ ํ๋ฆฌํฝ์ค(Vendor Prefix)๋ฅผ ์๋์ผ๋ก! Autoprefixer (0) | 2022.11.11 |
Parcel๋ก ๊ฐ๋ฐ ์๋ฒ ์ด๊ณ ์ ์ ํ์ผ ์ฐ๊ฒฐํ๊ธฐ ๐ (0) | 2022.11.11 |