Deno v2.4.0stable Released Jul 01, 2025
Impact Score: 5/10

Deno v2.4.0 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: deno ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified โ€” check source notes
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Deno v2.4.0. Source highlight: feat(bundle): support text and bytes imports in bundle (#29908)

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โœจ New Features & Capabilities (6)

  • feat(bundle): support text and bytes imports in bundle (#29908)
  • feat(check): tsconfig "references", "extends", "files", "include" and
  • feat(cli): add `--coverage` flag to `deno run` command (#29329)
  • feat(cli): alias --unstable-sloppy-imports to --sloppy-imports (#29780)
  • feat(ext/http): support `onListen()` callback in `deno serve` (#29449)
  • feat(fmt): add support for .xml, .svg and .mustache files (#29851)

โšก Performance & Enhancements (1)

  • perf: skip loading bytes and text imports into memory when already cached and

๐Ÿ”ง Bug Fixes & Patches (6)

  • fix(bench): Make output table markdown compatible (#29532)
  • fix(bundle): only replace require shim in js files, spruce up output (#29892)
  • fix(check): don't detect tsconfigs with no deno.json/package.json or
  • fix(coverage): Make output table markdown compatible (#29533)
  • fix(ext/node): add `lchmod`, `lchmod` promise, `lchmodSync` to `node:fs`
  • fix(ext/node): add type check to LibuvStreamWrap.writeBuffer (#29879)
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
### 2.4.0 / 2025.07.01 - feat(bundle): support text and bytes imports in bundle (#29908) - feat(check): tsconfig "references", "extends", "files", "include" and "exclude" (#29843) - feat(cli): add `--coverage` flag to `deno run` command (#29329) - feat(cli): alias --unstable-sloppy-imports to --sloppy-imports (#29780) - feat(ext/http): support `onListen()` callback in `deno serve` (#29449) - feat(fmt): add support for .xml, .svg and .mustache files (#29851) - feat(fmt): remove UTF-8 BOM instead of maintaining it (#29796) - feat(node API): add `fs.glob`, `fs.globSync`, `fs.promises.glob` (#28972) - feat(otel): stabilize OpenTelemetry support (#29822) - feat(process): add detached option to `Deno.Command` (#29933) - feat(run): resolve main module with workspace resolver (#29928) - feat(signals): support listening for ctrl+close on Windows (#27880) - feat(unstable): add DENO_NODE_CONDITIONS env var (#29848) - feat(unstable): bytes and text imports (#29855) - feat(unstable): support bytes and text imports in `deno compile` (#29924) - feat: --allow-net supports CIDR ranges (#29704) - feat: Add --deny-import flag (#29702) - feat: Deno.execPath() no longer requires --allow-read permission (#29620) - feat: add 'deno update' subcommand (#29187) - feat: add `DENO_AUTO_SERVE` env var (#29852) - feat: add `DENO_COMPAT` env var (#29889) - feat: add support for --preload/--import flag (#29626) - feat: deprecate --unstable-node-globals flag (#29887) - feat: make 'Buffer' and 'global' available as globals (#29416) - feat: make `setImmediate` and `clearImmediate` as globals (#29877) - feat: rename --unstable-node-conditions to --unstable-conditions (#29885) - feat: stabilize --allow-net subdomain wildcards (#29902) - feat: stabilize --node-conditions flag (#29628) - feat: unflag the deploy subcommand (#29863) - fix(bench): Make output table markdown compatible (#29532) - fix(bundle): only replace require shim in js files, spruce up output (#29892) - fix(check): don't detect tsconfigs with no deno.json/package.json or --no-config (#29925) - fix(coverage): Make output table markdown compatible (#29533) - fix(ext/node): add `lchmod`, `lchmod` promise, `lchmodSync` to `node:fs` (#29833) - fix(ext/node): add type check to LibuvStreamWrap.writeBuffer (#29879) - fix(ext/node): don't show deprecation warnings for dependencies (#29909) - fix(ext/node): export promise based `lchown` and `lutimes` from `node:fs/promises` (#29870) - fix(ext/node): fix reference error in node:stream (#29894) - fix(ext/node): improve assert.fail (#29850) - fix(ext/node): improve input validations of stream/consumers (#29880) - fix(ext/node): keep BOM in buffer.toString('utf8') (#29896) - fix(ext/node): remove duplicated stream classes (#29860) - fix(fmt/css): prefer collapsing font-family values (#29864) - fix(install): purge more packages from lockfile on config change (#29953) - fix(install/global): resolve bin name from npm packument (#29884) - fix(lsp): don't show no-export diagnostics for type-only npm imports (#29888) - fix(node): use primordials more consistently in `_events.mjs` (#29930) - fix(publish): disallow publishing with bytes or text imports (#29954) - fix: support `Deno.permissions.query({name:"import"})` (#29610) - perf: skip loading bytes and text imports into memory when already cached and building module graph (#29931)