Denoの直近のアップデート

まだリリースは行われていませんが、直近でいくつか新機能がマージされているため紹介いたします。

--ignore-envオプションが追加

Deno--ignore-envオプションが実装されています。

例えば以下のようなスクリプトがあったとします:

// main.js
console.info(Deno.env.get("HOME"));
console.info(Deno.env.get("DENO_DIR"));

このスクリプトを--ignore-env=HOMEを指定して実行すると、以下のように出力されます:

$ deno run --allow-env --ignore-env=HOME main.js
undefined
/home/uki00a/.cache/deno

Deno.env.toObject()を実行した場合、--ignore-envで指定された環境変数が返却結果から除外されます。

この機能はdeno.jsonにおけるパーミッションセット (--permission-set)においてもサポートされています。

{
  "permissions": {
    "default": {
      "env": {
        "allow": true,
        "ignore": ["HOME"]
      }
    }
  }
}

deno audit --socket

deno auditコマンドに--socketオプションを追加するPRがマージされています:

このオプションを指定すると、@socketsecurity/bun-security-scannerでも使用されているfirewall-api.socket.devエンドポイントを使用してパッケージの検査が行われます。

$ deno audit --socket
No known vulnerabilities found

Socket.dev firewall report

╭ pkg:npm/ansi-escapes@4.3.2
│ Supply Chain Risk: 100
│ Maintenance: 86
│ Quality: 100
│ Vulnerabilities: 100
│ License: 100

  ...

deno compileでスクリプト引数の指定に--が必須化 (破壊的変更)

deno compileにおいてスクリプト引数 (Deno.args) の指定に--が必須化されました (#31296)

これは破壊的変更であり、先週に紹介したグローバルのタイマーAPIに関するものと同様にDeno v3向けの変更であると思われます。

# 今までは以下のような指定が可能でした
$ deno compile main.ts arg1 arg2 -q


# 今後は以下のように指定する必要あり
$ deno compile main.ts -- arg1 arg2 -q

また、deno install -gコマンドにおいても同様の変更が実施されています (#31292)

deno_stdのリリース

deno_stdのリリースが実施されています (release-2025.11.17)

@std/mathパッケージが追加

新規パッケージとして@std/mathが追加されました (#6823)

現時点ではMath.clampをベースに実装されたclamp()などのAPIが提供されています。

@std/cache@0.2.1

@std/cache@0.2.1がリリースされています。

@std/cache/{lru,ttl}-cache

LruCacheおよびTtlCacheonEjectオプションが追加されています。キーが削除されたタイミングでこのオプションに指定した関数が呼ばれます (#6857)

@std/cli@1.0.24

@std/cli@1.0.24がリリースされています。

@std/cli/unstable-progress-bar

ProgressBarrefreshMillisecondsオプションが追加されています (#6862)。プログレスバーの描画頻度をカスタマイズできます (デフォルト値は1000)

@std/fs@1.0.20

@std/fs@1.0.20がリリースされています。

@std/fs/expand-glob

expandGlob()\[a\].txtのようにエスケープされているケースが適切に取り扱われるように修正されています (#6788)

また、expandGlob()で単一の要素のみを持つ@(pattern-list)の構文が適切に取り扱われない問題が修正されています (#6850)

@std/path@1.1.3

@std/path@1.1.3がリリースされています。

@std/path/is-glob

@std/fs/expand-globにおける改善と同様に、isGlob()で単一の要素のみを持つ@(pattern-list)の構文が適切に取り扱われない問題が修正されています (#6850)

@std/http@1.0.22

@std/http@1.0.22がリリースされています。

@std/http/unstable-file-server

serveFile()headersオプションが追加されています (#6842)。レスポンスに設定されるヘッダーをカスタマイズできます。

@fresh/core@2.2.0

@fresh/core@2.2.0がリリースされています。

Contextオブジェクトにレスポンスの生成を容易にするために下記ヘルパーメソッドが追加されました。Hono に影響を受けているようです (#3613)

  • html()
  • json()
  • text()
  • stream()

dax v0.44.0

dax v0.44.0がリリースされています。

破壊的変更として、KillSignalControllerKillControllerにリネームされています。

また、glob によるファイルパスの展開がサポートされています (#338)

const exitCode = await $`deno fmt *.ts`.code();

それ以外にも、!演算子のサポート (#341) や &>のサポート (#340) も実施されています。