Skip to Content
Nextra 4.0 is released πŸŽ‰

🌱️ Node Utils

이 νŒ¨ν‚€μ§€λŠ” NPM 곡개 배포λ₯Ό μœ„ν•œ 섀정이 package.json에 ν¬ν•¨λ˜μ–΄ μžˆμ–΄μš”. 배포λ₯Ό μ›ν•˜μ§€ μ•Šμ„ 경우, package.jsonμ—μ„œ μ•„λž˜μ˜ 섀정듀을 μ œκ±°ν•΄μ£Όμ„Έμš”:

package.json
{ "private": false, "publishConfig": { "access": "public" }, }

πŸ“– κ°œμš”

node-utils νŒ¨ν‚€μ§€λŠ” Node.js ν™˜κ²½μ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” λ‹€μ–‘ν•œ μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜λ“€μ„ μ œκ³΅ν•˜λŠ” νŒ¨ν‚€μ§€μ˜ˆμš”.

🎯 μ£Όμš” λͺ©ν‘œ

Node.js ν™˜κ²½μ—μ„œ λ™μž‘ν•˜λŠ” μƒˆ νŒ¨ν‚€μ§€λ₯Ό μΆ”κ°€ν•˜κ³  싢을 λ•Œ, 이 νŒ¨ν‚€μ§€λ₯Ό λ³΅μ‚¬ν•˜μ—¬ 개발의 μ‹œμž‘μ μœΌλ‘œ 삼을 수 μžˆλ„λ‘, μ•„λž˜μ™€ 같은 λͺ©μ λ“€μ„ κ°€μ§€κ³  μž‘μ„±λ˜μ—ˆμ–΄μš”:

  • os, fs, process λ“± Node.js ν™˜κ²½μ—μ„œ μ œκ³΅λ˜λŠ” API 듀을 ν™œμš©ν•  수 μžˆλ„λ‘ 기본적인 λΉŒλ“œ μ„€μ •
  • μ½”λ“œ μŠ€ν”Œλ¦¬νŒ… 및 트리 쉐이킹을 μ§€μ›ν•˜κΈ° μœ„ν•œ Vite 기반 λΉŒλ“œ μ„€μ •
  • TypeScript μ„ μ–Έ 파일 μ œκ³΅μ„ μœ„ν•œ μ„€μ •
  • npm 곡개 배포 μ‹œ ν•„μš”ν•œ 각쒅 package.json κ΄€λ ¨ μ„€μ •

πŸ“¦ 제곡 κΈ°λŠ₯

  • fs: 파일 μ‹œμŠ€ν…œ κ΄€λ ¨ μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜λ“€μ„ μ œκ³΅ν•΄μš”.
  • msw: API λͺ©μ—…을 μœ„ν•œ MSW κ΄€λ ¨ μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜λ“€μ„ μ œκ³΅ν•΄μš”.
  • misc: 기타 μœ μš©ν•œ μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜λ“€μ„ μ œκ³΅ν•΄μš”.

πŸ› οΈ λΉŒλ“œ 방식 및 μ£Όμš” μ„€μ •

이 νŒ¨ν‚€μ§€λŠ” Vite와 TypeScriptλ₯Ό 기반으둜 λ©€ν‹° μ—”νŠΈλ¦¬ 라이브러리 ν˜•νƒœλ‘œ λΉŒλ“œλ©λ‹ˆλ‹€.
각 κΈ°λŠ₯λ³„λ‘œ λ³„λ„μ˜ μ—”νŠΈλ¦¬(fs, msw, misc)λ₯Ό μ œκ³΅ν•˜λ©°, λΉŒλ“œ μ‚°μΆœλ¬Όμ€ dist 폴더에 ES λͺ¨λ“ˆ(.es.js)κ³Ό CommonJS(.cjs.js) ν˜•μ‹μœΌλ‘œ μƒμ„±λ©λ‹ˆλ‹€.

package.json

  • exports: 각 κΈ°λŠ₯별 μ—”νŠΈλ¦¬(./fs, ./msw, ./misc)λ₯Ό 뢄리해 νƒ€μž… μ„ μ–Έ(.d.ts), ES λͺ¨λ“ˆ, CJS λͺ¨λ“ˆμ„ λͺ¨λ‘ μ œκ³΅ν•©λ‹ˆλ‹€.
  • publishConfig: "access": "public"으둜 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 νƒ€μž…μ„ μ§€μ›ν•˜λ„λ‘ μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  • 엄격 λͺ¨λ“œ: νƒ€μž… 검사 및 린트 κ΄€λ ¨ μ˜΅μ…˜μ΄ μ—„κ²©ν•˜κ²Œ μ μš©λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  • 경둜 별칭: tsconfig.jsonμ—μ„œ μ •μ˜λœ 경둜 별칭을 μ‚¬μš©ν•˜μ—¬ μ½”λ“œ 가독성을 λ†’μž…λ‹ˆλ‹€.

Last updated on