π μΉν©μ μ΄λ ΅λ€κ³ λ§μ΄ λ€μλλ° μ΄λ€ λΆλΆμμ μ΄λ €μμ΄ μλμ§ μμΈν μ°Ύμλ΄μΌκ² λ€.
π μ€λ νμ΅ν λ΄μ©
λ²λ€λ§
- μ¬μ μ μλ―Έ: μ¬λ¬ μ νμ΄λ, μ½λ, νλ‘κ·Έλ¨μ λ¬Άμ΄μ ν¨ν€μ§λ‘ μ 곡νλ νμ
- κ°λ°μ μλ―Έ: μ¬μ©μμκ² μΉ μ ν리μΌμ΄μ μ μ 곡νκΈ° μν νμΌ λ¬Άμ
λ²λ€λ§μ μ¬μ©νμ§ μμ κ²½μ° μΌμ΄λλ μν©
- λ κ°μ jsνμΌμμ κ°μ λ³μλ₯Ό μ¬μ©νκ³ μμ΄μ λ³μ κ° μΆ©λμ΄ μΌμ΄λ μν©
- λ± ν λ² λΆλ¬μ€λ νλ μμν¬ μ½λκ° 8MBλΌμ, μΈν°λ· μλκ° λλ¦° κ΅κ°μ λͺ¨λ°μΌ νκ²½μμ μ¬μ©μκ° λΆνΈμ νΈμν μν©
- λ²λ€ νμΌ μ¬μ΄μ¦λ₯Ό μ€μ΄κΈ° μν΄μ νμΌμ 곡백μ λͺ¨λ μ§μ λλ°, κ°λ μ±μ΄ λ무 λ¨μ΄μ Έμ μ½λ©νκΈ° μ΄λ €μ΄ μν©
- λ°°ν¬ μ½λκ° λ무 μ½κΈ° μ¬μ κ°λ°μ ν μ€ μλ μ¬μ©μκ° νλ‘ νΈμλ μ ν리μΌμ΄μ μ μμλ‘ μ‘°μνμ¬ νΌν΄κ° λ°μν μν©
μΉν© (Webpack)
- μ¬λ¬ κ°μ νμΌμ νλμ νμΌλ‘ ν©μ³μ£Όλ λͺ¨λ λ²λ€λ¬
- *λͺ¨λλ²λ€λ¬: HTML, CSS, JavaScript λ±μ μμμ μ λΆ κ°κ°μ λͺ¨λλ‘ λ³΄κ³ μ΄λ₯Ό μ‘°ν©ν΄ νλμ λ¬ΆμμΌλ‘ λ²λ€λ§(λΉλ)νλ λꡬ
- νλ‘ νΈμλ μ ν리μΌμ΄μ λ°°ν¬λ₯Ό μν΄μ κ°μ₯ λ§μ΄ μ¬μ©νλ λ²λ€λ¬
- νλ‘ νΈμλ μ ν리μΌμ΄μ μ λκ·λͺ¨ μ μ μκ² μ 곡νκΈ° μν΄ κ°μ₯ λ§μ΄ μ¬μ©νλ λ°©λ²
- λ°±μλ κ°λ°μλ λ°°ν¬λ₯Ό μν΄ λ§μ΄ μ¬μ©νλ€.
Webpackμμμ λͺ¨λ
- JavaScriptμ λͺ¨λμλ§ κ΅ννμ§ μλλ€. HTML, CSS, jpg, png κ°μ μ΄λ―Έμ§ νμΌλ€λ μ λΆ ν¬ν¨ν ν¬κ΄μ μΈ κ°λ μ΄λ€.
λΉλμ λ²λ€λ§
- λΉλ: κ°λ°μ΄ μλ£λ μ±μ λ°°ν¬νκΈ° μν΄ νλμ ν΄λλ‘ κ΅¬μ±νμ¬ μ€λΉνλ μμ
- Reactμ±: npm run buildλ₯Ό μ€ννλ©΄ React buid μμ μ΄ μ§νλκ³ , index.html νμΌμ μμΆλμ΄ λ°°ν¬μ μ΅μ νλ μνλ₯Ό μ 곡
- λ²λ€λ§: λ¬Άμμ κ°λ (κ·Έλ£Ήν), νμΌμ λ¬Άλ μμ κ·Έ μ체λ₯Ό λ§νλ©° νμΌμ μμ‘΄μ κ΄κ³μ μλ νμΌλ€ κ·Έ μ체 νΉμ λ΄λΆμ μΌλ‘ ν¬ν¨λμ΄ μλ λͺ¨λμ μλ―Έ
Webpackμ νμμ±
- μΉ μ ν리μΌμ΄μ μ λΉ λ₯Έ λ‘λ© μλμ λμ μ±λ₯μ μν΄μμ΄λ€.
- κ° μμλ€μ μΌμΌν μλ²μμ μμ²νμ§ μμλ λκΈ° λλ¬Έμ λ€νΈμν¬ μ½μ€νΈκ° νκΈ°μ μΌλ‘ μ€μ΄λ λ€.
μΉν©μ ν΅μ¬ κ°λ
- Target
- target: ["νλ‘μ νΈ νκ²½", "ECMAScript λ²μ "]
- Entry
- μΉν©μ΄ λ΄λΆμ λνλμ κ·Έλνλ₯Ό μμ±νκΈ° μν΄ μ¬μ©ν΄μΌ νλ λͺ¨λ
- μ§κ°μ μ μΌλ‘ μμ‘΄νλ λ€λ₯Έ λͺ¨λκ³Ό λΌμ΄λΈλ¬λ¦¬λ₯Ό μ°ΎμλΌ μ μλ€.
- Output
- μμ±λ λ²λ€μ λ΄λ³΄λΌ μμΉμ μ΄ νμΌμ μ΄λ¦μ μ§μ νλ λ°©λ²μ webpackμ μλ €μ£Όλ μν
- Loaders
- Webpackμ JavaScriptμ JSON νμΌλ§ μ΄ν΄νμ§λ§ λ‘λλ₯Ό μ¬μ©νλ©΄ λ€λ₯Έ μ νμ νμΌμ μ²λ¦¬νκ±°λ, μ ν¨ν λͺ¨λλ‘ λ³νν΄ μ ν리μΌμ΄μ μ μ¬μ©νκ±°λ λνλμ κ·Έλνμ μΆκ°ν μ μλ€.
- test: λ³νμ΄ νμν νμΌλ€μ μλ³νκΈ° μν μμ± (νμ)
- use: λ³νμ μννλλ° μ¬μ©λλ λ‘λλ₯Ό κ°λ¦¬ν€λ μμ± (νμ)
- exclude: λ°λ²¨λ‘ μ»΄νμΌνμ§ μμ νμΌμ΄λ ν΄λλ₯Ό μ§μ
- Plugins
- λ²λ€μ μ΅μ ννκ±°λ μμ μ κ΄λ¦¬νκ³ , νκ²½λ³μ μ£Όμ λ±μ κ΄λ²μν μμ μ μνν μ μκ² λλ€.
- Optimization(μ΅μ ν)
- Webpack λ²μ 4λΆν° μ€ν
- minimize: TerserPlugin, optimization.minimizeμ λͺ μλ νλ¬κ·ΈμΈμΌλ‘ λ²λ€νμΌμ μ΅μν(μμΆ)μν€λ μμ μ¬λΆλ₯Ό κ²°μ νλ€.
- minimizer: default minimizerμ 컀μ€ν λ TerserPlugin μΈμ€ν΄μ€λ₯Ό μ 곡ν΄μ μ¬μ μ ν μ μλ€.
- Mode
- webpackμ λ΄μ₯λ μ΅μ ν κΈ°λ₯μ μ¬μ©ν μ μλ€.
- development: λͺ¨λκ³Ό μ²ν¬μ μ μ©ν μ΄λ¦μ μ¬μ©ν μ μλ€.
- production: λͺ¨λκ³Ό μ²ν¬, FlagDependencyUsagePlugin, FlagIncludedChunksPlugin, ModuleConcatenationPlugin, NoEmitOnErrorsPlugin, TerserPlugin λ±μ λν΄ κ²°μ μ λ§κΈμ΄λ¦(mangled name)μ μ¬μ©ν μ μμ΅λλ€.
- none: κΈ°λ³Έ μ΅μ ν μ΅μ μμ μ μΈνλ€.
- Browser Compatibility
π μΆκ°λ‘ 곡λΆν λ΄μ©
[udemy] React μλ²½ κ°μ΄λ κ°μ 보기 (λ§€μΌ μ‘°κΈμ© μ΄λΌλ κΎΈμ€ν λ£κΈ°)
Studyμκ³Ό ν¨κ» μ§νμ€μΈ νλ‘μ νΈ κ΅¬ν
- νμκ°μ νΌ κ΅¬ν
π μ€μν λ΄μ©
- μΉν©μ΄λ?
- μΉν©μ μ¬μ©νλ μ΄μ
- μΉν© μ¬μ©λ²
- λ²λ€λ§
- μΉν©μ κ°λ
π μ°Έκ³ μλ£
'Daily > Today I Learned' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
22.07.27_TIL (0) | 2022.07.27 |
---|---|
22.07.26_TIL (0) | 2022.07.26 |
22.07.22_TIL (0) | 2022.07.22 |
22.07.21_TIL (0) | 2022.07.21 |
22.07.19_TIL (0) | 2022.07.19 |