Deno 2.8

2 hours ago 1
  • deno add와 deno install 이 CLI에서 접두사 없는 패키지 이름을 기본적으로 npm: 패키지로 처리해, 기존 Node 프로젝트에서 npm install·yarn·pnpm install 대신 쓰기 쉬워짐
  • deno audit fix가 npm 의존성 취약 패키지를 버전 제약을 만족하는 가장 가까운 패치 버전으로 자동 업그레이드하며, 메이저 버전 변경이 필요한 항목은 별도로 보여줌
  • 새 하위 명령으로 deno ci, deno pack, deno transpile, deno why, deno bump-version가 추가되어 재현 가능한 설치, npm 배포용 tarball 생성, TS→JS 변환, 의존성 경로 추적, 워크스페이스 버전 갱신을 지원함
  • Node.js API 호환성이 Node 자체 테스트 스위트 기준 Deno 2.7의 약 42%에서 Deno 2.8의 76.4%(3,405/4,457)로 상승했고, 많은 node: 모듈이 지연 로드되어 해당 모듈을 쓰지 않는 프로그램의 시작이 빨라짐
  • 성능은 Deno 2.7.1 대비 콜드 npm 설치가 3,319ms에서 906ms로 3.66배 빨라졌고, node:buffer base64는 3.07배, node:http 처리량은 2.21배, node:crypto scrypt는 2.12배 개선됨
  • 호환성 변경으로 전역 setTimeout과 setInterval이 숫자 대신 Node의 Timeout 객체를 반환하며, 반환값을 number로 저장하거나 타입 검사·산술에 사용하던 코드는 NodeJS.Timeout 등으로 수정해야 함
  • TypeScript 6.0.3이 내장되고 deno check, LSP가 기본적으로 lib.node를 포함해 NodeJS.*, Buffer, process 같은 Node 타입을 별도 설정 없이 해석함
  • 디버깅에서 Chrome DevTools Network 탭이 Deno의 fetch(), node:http/node:https, WebSocket 트래픽을 표시하고, --cpu-prof, --cpu-prof-flamegraph, --cpu-prof-md로 V8 프로파일·SVG 플레임그래프·Markdown 리포트를 생성할 수 있음
  • 패키지·워크스페이스 관리에 catalog: 프로토콜, deno install --os --arch, --prod, nodeModulesLinker: "hoisted", .npmrc의 min-release-age, --package-json이 추가되어 모노레포 버전 통일, 크로스플랫폼 설치, 프로덕션 설치, 기존 Node 프로젝트 이전을 보완함
  • deno compile 은 Next.js, Astro, Fresh, Remix, SvelteKit, Nuxt, SolidStart, TanStack Start, Vite SSR 프로젝트를 감지해 deno task build를 실행하고 적절한 진입점을 생성하며, 대형 npm 의존성 트리 처리 중 진행 상황도 표시함
  • 테스트와 Web API에서는 Deno.test()의 sanitizeOps·sanitizeResources 기본값이 false로 바뀌고 per-test timeout과 함수 단위 coverage가 추가됐으며, OffscreenCanvas, 전송 가능한 Headers·Request·Response·Streams, SHA3 digest, P-521 Web Crypto 지원이 들어감
  • 업그레이드와 런타임 기반은 deno upgrade가 가능한 경우 delta 업데이트로 다운로드를 약 48MB에서 3~6MB로 줄이고, deno upgrade pr <number>로 PR 빌드를 설치할 수 있으며, V8은 14.6에서 14.9로 올라감
Read Entire Article