v2.3.0
Breaking Changes📦 denoView on GitHub →
⚠ 1 breaking✨ 14 features🐛 9 fixes🔧 14 symbols
Summary
Deno 2.3.0 introduces TypeScript 5.8 support, native addon support for standalone binaries, and enhanced formatting for embedded languages. Note: users must upgrade to 2.3.1 to fix a versioning metadata error.
⚠️ Breaking Changes
- Lockfile version now defaults to v5, which may cause compatibility issues with older Deno versions.
Migration Steps
- Upgrade to Deno v2.3.1 immediately using 'deno upgrade 2.3.1' due to a versioning error in the v2.3.0 release process.
✨ New Features
- Upgrade to TypeScript 5.8
- Added --npm and --jsr flags for deno add/install
- Support for FFI and Node native addons in deno compile
- Added deno clean --except <paths> to selectively preserve cache data
- Support for formatting embedded CSS, HTML, and SQL in deno fmt
- Added Deno.build.standalone to detect if running as a self-contained executable
- Added --open flag to deno serve to automatically open the server in a browser
- Support for linux vsock
- Added signal option to Deno.connect()
- Support for erasableSyntaxOnly for type checking
- Added DENO_EMIT_CACHE_MODE environment variable
- Basic OpenTelemetry (OTEL) event recording and span context propagators
- Enable explicit resource management (using/await using) for JavaScript
- Added deviceStartCapture and deviceStopCapture to unstable WebGPU API
🐛 Bug Fixes
- Fixed regression where implicit jsxImportSource was not resolving
- Fixed panic in deno compile when including node_modules directory
- Fixed integer overflow in createImageBitmap
- Improved Node.js compatibility for dns.lookup, Writable.toWeb(), and process.cpuUsage()
- Fixed handling of abort signal in readFile for Node.js compatibility
- Corrected STATUS_CODES strings in node:http
- Fixed deepStrictEqual(-0, 0) in node:assert
- Resolved stack overflow in deno doc for self-exporting namespaces
- Fixed panic when compiled with --no-terminal flag on Windows
🔧 Affected Symbols
Deno.connectDeno.build.standaloneDeno.serveDeno.addDeno.installGPUDevice.deviceStartCaptureGPUDevice.deviceStopCapturenode:httpnode:testnode:sqlitenode:dnsnode:streamprocess.loadEnvFileBuffer.copyBytesFrom