What’s New in Deno 1.34? Binary Compilation, npm Support, and TLS IP Certificates

Deno 1.34 introduces npm package support for deno compile, the ability to bundle resources into a single executable, TLS certificates that accept IP addresses, enhanced glob patterns in deno.json and CLI flags, plus numerous bug fixes, V8 11.5 and TypeScript 5.0.4 updates.

21CTO
21CTO
21CTO
What’s New in Deno 1.34? Binary Compilation, npm Support, and TLS IP Certificates

Deno 1.34 has been officially released, focusing on improved compatibility with npm and Node.js to enhance developer experience and lay groundwork for future performance gains.

Key Changes

deno compile now supports npm packages.

Since Deno v1.6, deno compile can produce a single binary executable, allowing developers to:

Distribute and run the binary on all major platforms without installing Deno or its dependencies.

Include resources inside the executable for better portability.

Simplify deployment with a single file.

Achieve faster startup times.

Leverage support for Web Workers, dynamic imports, and now npm packages.

Example: creating a standalone binary using cowsay:

$ cat main.ts
import { say } from "npm:[email protected]";
console.log(say({ text: "Hello from Deno!" }));
$ deno compile --allow-read main.ts
$ ./main
 _________________
< Hello from Deno! >
 ------------------
        \   ^_^
         \  (oo)\______
            (_ _)\       )\/\
                ||----w |
                |||     ||

TLS Certificate with IP Address

This feature is useful for Kubernetes pods that frequently use IP addresses instead of domain names, avoiding circular DNS dependencies for HTTPS/TLS.

In Deno v1.34, any TLS‑using API accepts an IP address, e.g.:

const resp = await fetch("https://1.1.1.1");
console.log(await resp.text());

Glob Support in deno.json and CLI Flags

Additional improvements and bug fixes are listed, including configuration enhancements.

Improved Configuration Files

Previously, excluding files for each sub‑command required repetitive entries:

{
  "fmt": {
    "exclude": ["target/"]
  },
  "lint": {
    "exclude": ["target/"]
  },
  "test": {
    "exclude": ["target/"]
  },
  "bench": {
    "exclude": ["target/"]
  }
}

From this version onward, a top‑level exclude property can be used directly:

{
  "exclude": ["target/"]
}

Other Improvements

Language server enhancements.

Deno API changes.

Further npm and Node compatibility optimizations.

Upgrade to V8 11.5 and TypeScript 5.0.4.

For full details, see the official release announcement.

Related link: https://deno.com/blog/v1.34

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

TypeScriptConfigurationV8Denobinary compilationnpm supportTLS IP certificate
21CTO
Written by

21CTO

21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.