์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- sql
- await
- object
- https://youtube.com/playlist?list=PLuHgQVnccGMA5836CvWfieEQy0T0ov6Jh&si=FTaYv8m21EhO-A2K
- js
- mysql
- Project
- promise
- db
- JS #ํ๋ก์ ํธ
- async
- Porject
- setTimeout()
- database
- ๊ฒ์
- ajax
- ๋๊ธฐ
- slow and steady
- ์ฐธ๊ณ ๋ธ๋ก๊ทธ
- prj
- webpack
- https://m.blog.naver.com/tt2t2am1118/221010125300
- callback
- json
- ํผํ
- eport
- addEventListener
- ๋น๋๊ธฐ
- Import
- execCommand
- Today
- Total
C-log
๐งWebpack : file-loader ๋ณธ๋ฌธ
์ฐ์ ์ด๋ฏธ์ง๋ฅผ importํ๊ธฐ ์ํด์ ์๋์ ๊ฐ์ด css๋ฅผ ๋ณ๊ฒฝํด์ผํ๋ค.
body {
background-image: url(git-logo-icon.png);
}
์ฐ์ yarn์ pnp๋ก ๋์์ ์ค์ ํ ๋์ ํ๋ก์ ํธ ํ์ผ์์ ์ค๋ฅ๊ฐ ์คํ๋์ง ์๊ณ ์ ์์ ์ผ๋ก ๋น๋๊ฐ ๋์๋ค๊ณ ๋์ค๊ณ ์๋ค. ๊ฑฐ๊ธฐ๋ค ๋ธ๋ผ์ฐ์ ์์๋ ๋ด๊ฐ ์ค์ ํ image๊ฐ ์ ๋๋ก ๋์ํ๊ณ ์๋ค. ์๊ทธ๋ฐ๊ฐ ์๊ฐํด๋ณด๋ ๋ด๊ฐ ์ด๋ฏธ node_modules๋ฅผ pnp๋ก ์ ํํด์ yarn-berry์ ํน์ง์ธ cache ํด๋์์์ ์ด๋ฏธ file-loader๊ฐ ์กด์ฌํด์ ํด๊ฒฐ์ด ๋๊ณ ์๋ ๊ฒ์ด๋ผ๊ณ ์ง์์ ํ๋ค. ํ์ง๋ง ๋์ ์ถ์ธก๊ณผ๋ ์ ํ ๋ฌด๊ดํ๋ค. file-loader๋ฅผ ๋ฌด์ํ๊ณ ๋ฐ๋ก webpack.configํ์ผ์ ์ค์ ํ๋ ๊ทธ์ ์์ผ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ๋ค์ ์๋์ ๊ฐ์ด file-loader๋ฅผ ์ค์ ํ๋ค.
::CMD
npm install file-loader
yarn install file-loader
ํ์ง๋ง webpack.cofing ์ค์ ๊ณผ์ ์์ file-loader๋ฅผ ์ง์ ๋ค๋ฃจ๋ ค๊ณ ํ๋ file-loader์์ด ์ ๋์ํ๋ ๋น๋๊ฐ ์ด๋ฏธ์ง ์ฒ๋ฆฌ๊ฐ ๋์ง ์๊ณ ์๋ ๊ฒ์ด๋ค. ํ์ธ์ ํด๋ณด๋ webpack๊ณผ ๋ค๋ฅธ ํจํค์ง๋ค์ ๋ฒ์ ์ ๋ณด๊ฐ ์์ ์์ ํ๋ ๋ฒ์ ๊ณผ ๋ฌ๋ผ์ ๋ฐ์ํ ๋ฌธ์ ์๋ค. webpack 5์ด์ ๋ถํฐ๋ file-loader๋ฅผ ํฌํจ์์ผฐ๋ค๋ ๊ฒ์ด๋ค. ์ด์ ๋ฐ๋ผ webpack๊ณผ ๋๋จธ์ง ํจํค์ง๋ค์ ๋ชจ๋ ์์ ์์ ๋ค๋ฃจ๋ ๋ฒ์ ์ผ๋ก ๋ค์ ๋ง์ถ๊ณ ์คํํด ๋ณด๋ ค๊ณ ํ์ผ๋ ์ด์ ๊ณผ ๊ฐ์ด style-loader๋ฅผ ์ฐพ์ง ๋ชปํ๋ ๋ถ์์ฌ๊ฐ ๋ฐ๋ณต๋์๋ค. ๊ทธ๋์ ์์ ๊ณผ๋ ๋ณ๊ฐ๋ก ์ต์ ๋ฒ์ ์ ๋ง์ถฐ์ webpack.config๋ฅผ ์ค์ ํ๊ธฐ๋ก ํ๋ค.
//webpack.config.js (5 ์ด์ ๋ฒ์ )
{
test: /\.png$/,
type: 'asset/resource'
}
//webpack.config.js (5 ์ดํ ๋ฒ์ )
{
test: /\.png$/,
use: [
'file-loader'
],
},
์ถ๊ฐ์ ์ผ๋ก ์ค๋ช ํ์๋ฉด ์นํฉ 5๋ฒ์ ์ด์์์๋ ๋ช ๊ฐ์ง ์ค์ํ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ค. file-loader, url-loader, ๋ฐ raw-loader์ ๊ฐ์ ๋ก๋๋ค์ ์นํฉ 5๋ถํฐ๋ ์์ฒด์ ์ผ๋ก ํฌํจ๋ ๊ธฐ๋ฅ์ผ๋ก ๋์ฒด๋์๋ค. ๊ทธ๋ฌ๋ ํน์ ํ ๊ฒฝ์ฐ์๋ ์ฌ์ ํ file-loader์ ๊ฐ์ ๋ก๋๋ฅผ ์ง์ ์ฌ์ฉํด์ผ ํ๋ ค๋ฉด ์์ ๊ฐ์ด type: 'asset/resource'๋ฐฉ์์ผ๋ก ์ํํ๋ฉด ๋๋ค.
์ด์ ์นํฉ ๋ฒ์ ๊ณผ yarn-berry์ ํธํ์ฑ ๋ฌธ์ ๋ ๋ค๋กํ๊ณ distํด๋๋ก ๊ฐ๋ณด๋ฉด ์ด๋ฏธ์ง ํ์ผ์ด ์๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.
dist
โโโ e6cb70b6c44cc2e8835a.png
โโโ main.js
์ฐ๋ฆฌ๊ฐ ์ง์ ํด ๋์ ์ด๋ฏธ์ง ํ์ผ์ ํ์ผ๋ช ์ด ์๋ ํด์ ๊ฐ์ผ๋ก ์ด๋ฆ์ด ๋ณ๊ฒฝ ๋์ด ์๋ค. ์นํฉ์ ๋น๋๊ฐ ๋ ๋ ๋ง๋ค ์ด๋ ๊ฒ ํด์ ๊ฐ์ผ๋ก ํ์ผ๋ช ์ด ๋ณ๊ฒฝ๋๋ค. ์ ์ ํ์ผ์ ๊ฒฝ์ฐ ์บ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ํด์๊ฐ์ ์ด์ฉํ๋ค. ๋ธ๋ผ์ฐ์ ์์ ์บ์ฑ์ ํ๋ ๊ฒฝ์ฐ๋ ์ด๋ฏธ์ง ์ธ์๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ css, ์ด๋ฏธ์ง ํฐํธ๊ฐ ์๋ค. ๋ธ๋ผ์ฐ์ ๋ ์บ์๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ ํ์ผ์ ๋ค์ ๋ค์ด๋ก๋ํ์ง ์๋๋ก ํ๋ค. ๊ทธ๋ฌ๋ ํ์ผ์ด ๋ณ๊ฒฝ๋์์ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ต์ ๋ฒ์ ์ ๋ก๋ํ๋๋ก ํ์ผ ์ด๋ฆ์ ํด์ ๊ฐ์ ํฌํจ์ํค๋ฉด ํ์ผ ๋ด์ฉ์ด ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์๋ก์ด ํ์ผ ์ด๋ฆ์ด ์์ฑ๋๋ฏ๋ก ๋ธ๋ผ์ฐ์ ๋ ํญ์ ์ต์ ํ์ผ์ ๋ก๋ํ๊ฒ ๋๋ค.
ํ์ผ์ ์ด๋ฆ์ ์ค์ ํ ์ ์๊ฒ webpack.config์์ ์ค์ ํ๋ฉด ์๋์ ๊ฐ๋ค.
//webpack.config.js (5 ๋ฒ์ ์ดํ)
{
test: /\.png$/,
loader: 'file-loader',
options: {
publicPath: './dist/',
name: '[name].[ext]?[hash]'
}
},
//webpack.config.js (5 ๋ฒ์ ์ด์)
{
test: /\.png$/,
type: 'asset/resource',
generator: {
filename: 'assets/[name].[hash][ext]',
publicPath: './dist/',
},
}
์์ฑ์๋ assetsํด๋ ์๋์ ๋ณธ๋ ํ์ผ๋ช ๊ณผ ํจ๊ป ํด์๊ฐ์ ๋ถ์ฌํ๋ค. ๊ทธ๋์ ๊ฒฐ๊ณผ์ ์ผ๋ก ์๋์ ๊ฐ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ก distํด๋์ ํ์ผ๋ค์ด ์ค์ ๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.
dist
โโโ assets
โ โโโ git-logo-icon.e6cb70b6c44cc2e8835a.png
โ
โโโ e6cb70b6c44cc2e8835a.png
โโโ main.js
main.js์์๋ ์๋์ ๊ฐ์ด ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
//main.js
/** ์ดํ์๋ต */
...("module.exports = \"./dist/assets/git-logo-icon.e6cb70b6c44cc2e8835a.png\";\n\n//#...
/** ์ดํ์๋ต */
๊ตฌ๋ฒ์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ ์ ์ด ๋งค์ฐ ์์ฝ์ง๋ง ์ต์ ๋ฒ์ ์ ์ ์์ ํด์ผํ๋ ๊ฒ์ด ๊ธ์ ๋ฌด๋ผ๊ณ ์๊ฐ์ด ๋์ด์ ์ด๋ ๊ฒ ์ต์ ๋ฒ์ ์ผ๋ก ์ํํด ๋ณด์๋ค. yarn-berry๊ธฐ๋ฐ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์ธํ ํด์ yarn-berry์ pnp ํธํ์ฑ ๋ฌธ์ ๊ฐ ๊ฐ์ฅ ํด ๊ฒ์ผ๋ก ์ถ์ธก์ด ๋๋ค. ์๋ฌด๋๋ yarn-berry์ ๋จ์ ์ด ํธํ์ฑ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ์ต์ ๋ฒ์ ์ ๋ง๊ฒ ์ค์ ์ ํ ์ ๋ฐ์ ์์๋ค.
REFERCNE
'โ๏ธReact > ๐งFront-Dev-Environment' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐งWebpack : Plugin (0) | 2024.08.20 |
---|---|
๐งWebpack : url-loader (0) | 2024.07.19 |
๐งWebpack : css-loader, style-loader (0) | 2024.07.17 |
๐งWebpack : Loader (0) | 2024.06.23 |
๐งWebpack : Entry (0) | 2024.06.21 |