π HTTP Clients
π κ°μ
http-clients
ν¨ν€μ§λ HTTP μμ²μ μ²λ¦¬νκΈ° μν μ νΈλ¦¬ν°μ ν΄λΌμ΄μΈνΈ μ½λλ₯Ό μ 곡νκΈ° μν λ΄λΆ ν¨ν€μ§μ
λλ€.
π― μ£Όμ λͺ©ν
μ΄ ν¨ν€μ§λ λ€μκ³Ό κ°μ μ£Όμ λͺ©νλ€μ κ°μ§κ³ μμ±λμμ΄μ:
- HTTP ν΄λΌμ΄μΈνΈ μΈμ€ν΄μ€(
self
,iamhoonse.dev
)λ₯Ό μ 곡νμ¬ μΌκ΄λ μμ² μ²λ¦¬ - μΉ λΈλΌμ°μ μ Node.js νκ²½μμ λͺ¨λ μ¬μ©ν μ μλ HTTP ν΄λΌμ΄μΈνΈ μ 곡
- μ½λ μ€ν리ν λ° νΈλ¦¬ μμ΄νΉμ μ§μνκΈ° μν Vite κΈ°λ° λΉλ μ€μ
- TypeScript μ μΈ νμΌ μ 곡μ μν μ€μ
π¦ μ 곡 κΈ°λ₯
- Instances:
self
λ°iamhoonse.dev
μ κ°μ HTTP ν΄λΌμ΄μΈνΈ μΈμ€ν΄μ€λ₯Ό μ 곡ν΄μ. - Mocks:
self
λ°iamhoonse.dev
μ κ΄λ ¨λ μμ² νΈλ€λ¬λ₯Ό MSW(Mock Service Worker)μ ν¨κ» μ¬μ©ν μ μλλ‘ μ 곡ν΄μ. - Types: HTTP μμ² λ° μλ΅κ³Ό κ΄λ ¨λ νμ μ μ μν΄μ.
π οΈ λΉλ λ°©μ λ° μ£Όμ μ€μ
μ΄ ν¨ν€μ§λ Viteμ TypeScriptλ₯Ό κΈ°λ°μΌλ‘ λ©ν° μνΈλ¦¬ λΌμ΄λΈλ¬λ¦¬ ννλ‘ λΉλλ©λλ€.
κ° κΈ°λ₯λ³λ‘ λ³λμ μνΈλ¦¬(instances
, mocks
, types
)λ₯Ό μ 곡νλ©°, λΉλ μ°μΆλ¬Όμ dist
ν΄λμ ES λͺ¨λ(.es.js
)κ³Ό CommonJS(.cjs.js
) νμμΌλ‘ μμ±λ©λλ€.
package.json
- exports: κ° κΈ°λ₯λ³ μνΈλ¦¬(
./instances
,./mocks
,./types
)λ₯Ό λΆλ¦¬ν΄ νμ μ μΈ(.d.ts
), ES λͺ¨λ, CJS λͺ¨λμ λͺ¨λ μ 곡ν©λλ€. - private:
"private": true
λ‘ npm κ³΅κ° λ°°ν¬λ₯Ό νμ§ μλλ‘ μ€μ λμ΄ μμ΅λλ€. - files: λΉλ μ°μΆλ¬Ό(
dist
)λ§ ν¨ν€μ§μ ν¬ν¨λλλ‘ μ§μ ν©λλ€. - scripts: Viteμ TypeScriptλ₯Ό νμ©ν λΉλ, νμ 체ν¬, ν μ€νΈ λ± λ€μν κ°λ° μ€ν¬λ¦½νΈκ° μ μλμ΄ μμ΅λλ€.
vite.config.ts
- λ©ν° μνΈλ¦¬ λΉλ:
shared/helpers
μμ μ 곡νλrunWithGlob
μ νΈμ νμ©ν΄src
ν΄λ λ΄μ κ° μνΈλ¦¬ νμΌμ μλμΌλ‘ κ°μ§νμ¬ λΉλ μνΈλ¦¬λ‘ λ±λ‘ν©λλ€. - λΌμ΄λΈλ¬λ¦¬ λͺ¨λ: Viteμ λΌμ΄λΈλ¬λ¦¬ λͺ¨λλ₯Ό μ¬μ©ν΄ ES/CJS ν¬λ§·μΌλ‘ κ°κ° λΉλν©λλ€.
- νμ
μ μΈ:
vite-plugin-dts
λ‘ κ° μνΈλ¦¬λ³ νμ μ μΈ νμΌμ μλ μμ±ν©λλ€. - κ²½λ‘ λ³μΉ:
vite-tsconfig-paths
λ‘ TypeScript κ²½λ‘ λ³μΉμ μ§μν©λλ€.
tsconfig.json
- λͺ¨λ ν΄μ:
"moduleResolution": "bundler"
λ‘ λ²λ€λ¬ μΉνμ μΈ λͺ¨λ ν΄μμ μ¬μ©ν©λλ€. - νμ μ§μ: μ΅μ ECMAScript, Node.js, DOM κ΄λ ¨ νμ μ μ§μνλλ‘ μ€μ λμ΄ μμ΅λλ€.
- μ격 λͺ¨λ: νμ κ²μ¬ λ° λ¦°νΈ κ΄λ ¨ μ΅μ μ΄ μ격νκ² μ μ©λμ΄ μμ΅λλ€.
- κ²½λ‘ λ³μΉ:
tsconfig.json
μμ μ μλ κ²½λ‘ λ³μΉμ μ¬μ©νμ¬ μ½λ κ°λ μ±μ λμ λλ€.
Last updated on