webpack
๐ก ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ชจ๋์ ์ง์ํ์ง ์์์ง๋ง (ES5), ์๋ฐ์คํฌ๋ฆฝํธ์ ์๋ก์ด ํ์ค์ธ ECMAScript6(ES6)๊ฐ ์๊ธฐ๋ฉด์ ๋ชจ๋์ ์ง์.
- CommonJS๋ณด๋ค ๋ฌธ๋ฒ์ด ๋ ๊ฐ๊ฒฐํด์ง
- ๊ตฌ์กฐ๊ฐ staticํ๊ฒ ๋ถ์ ๊ฐ๋ฅํ๊ณ ์ต์ ํ๋ ๋จ.
- CommonJS๋ณด๋ค ์ํ ์์กด์ฑ ์ง์์ด ์๋จ
๊ทธ๋ฌ๋ ๋ธ๋ผ์ฐ์ ๋ ์ฌ์ ํ ํ์ผ ๋จ์ ๋ชจ๋์ ์ ๋ชจ๋ฆ.
- ES6๋ ์ผ๋ถ ๋ธ๋ผ์ฐ์ ์์๋ง ์ง์.
- ๋ฐ๋ผ์ ์ฌ๋ฌ ๋ฒ์ ์ ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฐ ๋ชจ๋ํ๋ฅผ ์ง์ํ์ง ์๋ ๊ฒฝ์ฐ๋ ์์.
- ํ๋์ ์์ค๋ก ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ๋ณด์ฌ์ฃผ๋๊ฒ ์น์ ํน์ฅ์
- ๋ชจ๋์ ํ๋์ ํ์ผ๋ก ๋ฌถ์ด ๋คํธ์ํฌ ๋น์ฉ์ ์ต์ํ ํ ์ ์์ด์ผํจ
- ์ด ๊ณผ์ ์ด ๋ฐ๋ก bundling </aside>
์นํ์ 4๊ฐ์ง ๊ฐ๋
์ํธ๋ฆฌ
// webpack.config.js
module.exports = {
entry: {
// ์์์ ๊ฒฝ๋ก
main: './src/main.js',
}
}
- ์์กด์ฑ ๊ทธ๋ํ์ ์์์ ์ ์๋ฏธ.
- ์ํธ๋ฆฌ ํ์ผ์ ์์กดํ๋ ํ์ผ์ ์์
- ์ํธ๋ฆฌ๊ฐ A๋ฅผ ์์กดํ๊ณ , A๊ฐ ๋ค์ B, C๋ฅผ ์์กดํ๊ณ .. ํ๋ ์์ผ๋ก ๋ชจ๋์ด ์ฐ๊ฒฐ
- ์นํฉ์ ์ด๋ฏธ์ง, ํฐํธ, ์คํ์ผ์ํธ ์ญ์ ๋ชจ๋๋ก ๊ด๋ฆฌ
- ์ค์ ํ์ผ์์ ์ํธ๋ฆฌ ํ์ผ์ ์ง์ ํ ์ ์๋ค.
์์ํ
// webpack.config.js
module.exports = {
output: {
filename: 'bundle.js',
path: '.dist'
}
}
- ์ํธ๋ฆฌ์ ์ค์ ํ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ์์์ผ๋ก, ์์กด๋์ด ์๋ ๋ชจ๋์ ํ๋๋ก ๋ฌถ์ด์ ๋ด๋ณด๋ธ๋ค (๋ฒ๋ค๋ง).
- ๋ฒ๋ค๋ ๊ฒฐ๊ณผ๋ฌผ์ด ๋์ค๋ ์์น๋ output ํค์ ๊ธฐ๋ก
//dist/buldnle.js -- ๋ฒ๋ค๋ง๋ ํ์ผ
<body>
<script src="./dist/bundle.js"></script>
</body>
๋ก๋
- ์นํฉ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ๋ฟ ์๋๋ผ ์ด๋ฏธ์ง, ํฐํธ, ์คํ์ผ์ํธ๊น์ง ์ ๋ถ ๋ชจ๋๋ก ๊ด๋ฆฌ
- ์นํฉ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฐ์ ๋ชจ๋ฆ
- ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์๋ ํ์ผ๋ค์ ์นํฉ์ด ์ดํดํ๋๋ก ๋ณ๊ฒฝํด์ผํจ
- ์ด ์ญํ ์ ๋ฐ๋ก ๋ก๋๊ฐ ํด์ค
- ์์ - css-loader
- css๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ๋ก ๋ณํํด์ ๋ก๋ฉํ ๋ ์ฌ์ฉํ๋ ๋ก๋
- test์ ๋ก๋ฉํ ํ์ผ์ ์ง์ ํด์ฃผ๊ณ , user์ ์ฌ์ฉํ ๋ก๋๋ฅผ ์ ํด์ฃผ๋ฉด ๋จ
- //webpack.config.js module.exports = { module: { rules: [{ test: /\\.css$/, use: ['style-loader', 'css-loader'] }] } }
ํ๋ฌ๊ทธ์ธ
- ๋ก๋๋ (๋ฒ๋ค๋๊ธฐ ์ ) ํ์ผ๋จ์๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ๋ฉด, ํ๋ฌ๊ทธ์ธ์ ๋ฒ๋ค๋ ๊ฒฐ๊ณผ๋ฌผ์ ์ถ๊ฐ๋ก ์ฒ๋ฆฌ
- ๋ฒ๋ค๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋๋ ํ ํ๋ค๊ฑฐ๋ ํน์ ํ ์คํธ๋ฅผ ์ถ์ถํ๋ ์ฉ๋๋ก ์ฌ์ฉํ ์ ์์
- ์์ - UglifyJsPlugin
- ์๋ฐ์คํฌ๋ฆฝํธ ๊ฒฐ๊ณผ๋ฌผ์ ๋๋ ํ ์ฒ๋ฆฌํ๋ ํ๋ฌ๊ทธ์ธ
- ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ ๋๋ ์นํฉ ๊ฐ์ฒด์ plugins ๋ฐฐ์ด์ ์ถ๊ฐ
'Development' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ๋ฒจ(Babel) (0) | 2023.06.15 |
---|---|
[axios] axios 2 (0) | 2023.01.27 |
[axios] axios 1 (0) | 2023.01.21 |
[npm].npmrc (0) | 2023.01.19 |
๋๊ธ