Alliniλ Create React App(CRA)μ μ¬μ©νμ§ μκ³ , μ§μ Webpackκ³Ό Babelμ μ€μ ν΄λ³΄κΈ°λ‘ νμ΅λλ€.
νμ¬μμ Webpackμ μ€μ ν΄λ³Έ κ²½νμ΄ μμ΄, μ²μμλ κ·Έ κΈ°μ΅μ μμ‘΄ν΄ μμ
μ μμνμ΄μ.
κ·Έλ°λ° νλ‘μ νΈ μ§ν λμ€ Pretendard-Black.subset.woff2 λ° Pretendard-ExtraBold.subset.woff2 ν°νΈ νμΌμ μ°Ύμ μ μλ€λ μλ¬κ° λ°μνμ΅λλ€.
μ΄ μλ¬λ₯Ό ν΄κ²°νκΈ° μν΄ νμΌ μμΉ, font.cssμ κ²½λ‘, νμΌλͺ , λΉλ μΊμ μμ λ± λ€μν λ°©λ²μ μλνμ§λ§,
λ¬Έμ λ μ¬μ ν ν΄κ²°λμ§ μμκ³ ..π’
μ κ° μμ±ν Webpack μ€μ μ체μ λ¬Έμ κ° μλ κ²μ΄ μλκ° μμ¬νκ² λμ΅λλ€.
Webpack μ€μ μ κ²: file-loaderλ μ λ±λ‘νλλ°...
μλ¬κ° λ°μν μ΄μ λ₯Ό μ°ΎκΈ° μν΄ webpack.config.js νμΌμμ νμΌ λ‘λ μ€μ μ νμΈνμ΅λλ€.
file-loaderλ₯Ό μλμ κ°μ΄ μ€μ ν΄λμκΈ°μ, λ¬Έμ κ° μμ κ²μ΄λΌκ³ μκ°νμμ£ ..!
{
test: /\.(png|jpe?g|gif|webp)$/i,
use: [
{
loader: "file-loader",
options: {
name: "[path][name].[ext]",
},
},
],
}
κ·Έλ κΈ°μ μ΄ μ€μ μλ μλ¬΄λ° λ¬Έμ κ° μλ€κ³ νλ¨νκ³ , μ μ΄λ° λ¬Έμ κ° λ°μνλμ§ λμ ν μ΄ν΄κ° λμ§ μμμ΅λλ€.
μλ±ν κ³ λ―Ό: MSWκ° λ¬Έμ μΈκ°?
μ΄μ―€ λλ MSW(Mocking Service Worker)κ° ν°νΈ νμΌμ‘°μ°¨ κ°λ‘μ±λ κ²μ΄ μλκ° νλ μλ±ν μκ°κΉμ§ νκ² λμμ΄μ..!
MSWλ λ°±μλκ° κ΅¬μΆλκΈ° μ μ νλ‘ νΈμλ UI κ°λ°μ μν΄ μ¬μ© μ€μ΄μμ΅λλ€.
νμ§λ§ 곡μ λ¬Έμλ₯Ό μ½μ΄λ³Έ κ²°κ³Ό, MSWλ μ μ 리μμ€(μ: ν°νΈ νμΌ)μλ μν₯μ μ£Όμ§ μλλ€λ κ²μ νμΈνμ΅λλ€.
MSWκ° ν°νΈ νμΌ μμ²μ κ°λ‘μ±μ§ μλ ν, μ΄ λ¬Έμ λ MSWμ κ΄λ ¨μ΄ μμ κ°λ₯μ±μ΄ λμμ΅λλ€.
μ§μ§ λ¬Έμ : Webpack λ²μ μ°¨μ΄
κ³ λ―Όμ κ±°λνλ μ€, νΉμ λ΄κ° μκ³ μλ Webpack μ€μ κ³Ό νμ¬ μ¬μ©νλ λ²μ κ°μ μ°¨μ΄κ° μλ κ²μ μλκΉ νλ μκ°μ΄ λ€μμ΅λλ€.
μ΄ μκ°μ΄ λ°λ‘ μ λ΅μ΄μμ£ !!! α¦( α )α‘
Webpack 5μμλ νμΌ λ‘λ μ€μ μ΄ κ°μνλμκ³ , λ μ΄μ file-loaderλ₯Ό μ¬μ©ν νμκ° μμμ΅λλ€.
Webpack 5μμλ λ€μκ³Ό κ°μ΄ μ€μ ν©λλ€:
{
test: /\.(jpg|jpeg|gif|png|svg|eot|woff|ttf)$/i,
type: "asset/resource",
}
Webpack 5μμλ file-loaderμ url-loaderλ±μ λ μ΄μ μ¬μ©νμ§ μκ³ , asset/resource, asset/inline, κ·Έλ¦¬κ³ assetμ ν΅ν΄ νμΌμ μ²λ¦¬ν©λλ€.
- asset/resource: λ³λμ νμΌμ λ΄λ³΄λ΄κ³ URLμ λ°νν©λλ€. (file-loader λ체)
- asset/inline: λ°μ΄ν° URLλ‘ λ΄λ³΄λ΄κΈ° (url-loader λ체)
- asset: μλμΌλ‘ λ°μ΄ν° URLκ³Ό νμΌ λ΄λ³΄λ΄κΈ° μ€ μ ννλ©°, κΈ°μ‘΄μ ν¬κΈ° μ ν μ€μ λ ν¬ν¨λ©λλ€.
λ μμΈν λ΄μ©μ μ°Έκ³ νλ Webpack 곡μ λ¬Έμ λ§ν¬λ₯Ό λ¨κ²¨λκ²μ!!
νμ΅ λ°©μμ λν λ°μ±, κ·Έλ¦¬κ³ μμΌλ‘μ κ³ν
μ΄μ μ TOAST Editorκ° React 17 λ²μ κΉμ§λ§ μ§μλλ€λ μ΄μλ₯Ό κ²ͺμλ μ μ΄ μμ΅λλ€.
λΆλλ½μ§λ§ κ·Έλλ μ΄μ μ§μμλ§ μμ‘΄νλ νμ, μ¬μ©λ κΈ°μ μ€νμ λν΄ μΆ©λΆν κ²ν νμ§ μμλ κ²½νμ΄ μμμ΅λλ€.
μ΄λ² Webpack μ€μ λ¬Έμ λ₯Ό κ²ͺμΌλ©΄μ, λ€μ ν λ² μ μ νμ΅ λ°©μμ λν΄ λμλ³΄κ² λμμ΅λλ€..!
Webpack λ²μ μ μ¬λ¦° νμλ λ€λ₯Έ μμ μ κΈκΈν΄ μ€μν λ³νλ₯Ό λ―Έμ² νμΈνμ§ μμλ κ²μ΄ μμΈμ΄μμΌλκΉμ.
Allini νλ‘μ νΈλ νμλ€μ νμ¬ μ λ¬΄λ‘ μΈν΄ μ μ μ€λ¨λμμμ§λ§, λ€μ μμνκ² λμμ΅λλ€!
νμ¬λ λμμ΄λλμ΄ μμ²ν μμ λ UIλ₯Ό λΉ λ₯΄κ² μ μ©νλ κ²μ΄ μ°μ μμκ° λλ€κ³ νλ¨νμ¬, μ΄ λΆλΆλΆν° μμ μ μ§ννκ³ μμ΅λλ€.
κ·Έλ κΈ°μ Webpack 5 λ²μ μ λ§μΆ μ 체μ μΈ μ€μ μμ μ νλ‘μ νΈκ° μμ±λ νμ μ§ννκΈ°λ‘ κ²°μ νμ΅λλ€.
μ°μ μ νλ‘μ νΈμ μμ±λλ₯Ό λμ΄λ λ° μ§μ€νκ³ , μμ μ€ λ°μνλ λ¬Έμ λ€μ νλμ© ν΄κ²°ν΄ λκ° κ³νμ λλ€.
νλ‘μ νΈκ° λ§λ¬΄λ¦¬λλ©΄, CSS νμΌμ κ°λ³μ μΌλ‘ μΆμΆνκΈ° μν MiniCssExtractPlugin λ±μ 리ν©ν λ§λ μ§νν μμ μ λλ€.
μ΄ κ³Όμ μμ μμ±λ μ΅μ’ μ½λλ λμ€μ λΈλ‘κ·Έμ 곡μ ν μμ μ΄λ, κΈ°λν΄ μ£ΌμΈμ! πͺ
π μ°Έκ³ λ¬Έν | ||
Webpack Asset Modules 곡μλ¬Έμ μλ¬Έ | ||
Webpack Asset Modules 곡μλ¬Έμ λ²μ |