피드로 돌아가기
Node.js 21.2.0 (Current)
Node.js BlogNode.js Blog
Backend

Node.js 21.2.0이 import.meta.dirname, import.meta.filename, navigator API, deflate-raw 압축, 테스트 러너 LCOV 리포터를 추가해 ESM 모듈 개발 경험 및 웹 호환성 강화

Node.js 21.2.0 (Current)

2023년 11월 14일3intermediate

Technical Solution

  • ESM 모듈에서 import.meta.dirname과 import.meta.filename 추가: 모듈 파일 경로 정보 접근 가능
  • Navigator API 확장: navigator.language, navigator.languages, navigator.platform 구현으로 웹 표준 호환성 증대
  • --no-experimental-global-navigator CLI 플래그 추가: 글로벌 Navigator 객체 활성화 여부를 런타임에 제어
  • Stream 압축 기능 확장: webstreams에 deflate-raw 형식 지원 추가
  • Test Runner 개선: LCOV 리포터 내장, Date 객체 모킹 지원, --test-timeout 플래그 추가로 테스트 실행 시간 제한 가능
  • Stream 성능 최적화: Readable 버퍼를 Array로 변경 및 생성 프로세스 최적화
  • fs/promises 스택트레이스 추가: 파일 시스템 Promise 기반 작업의 디버깅 향상

Node.js를 사용하는 백엔드 팀에서는 ESM 기반 모듈 개발 시 import.meta.dirname/filename으로 설정 파일 경로 처리를 동적으로 개선할 수 있고, 테스트 자동화 환경에서 내장 LCOV 리포터와 --test-timeout으로 CI/CD 파이프라인 의존성을 줄일 수 있으며, 웹 호환성이 필요한 하이브리드 런타임에서는 navigator API를 통해 클라이언트-서버 코드 재사용성을 높일 수 있다.

원문 읽기