直近のDenoのアップデート
まだリリースは行われていませんが、直近でいくつかの機能が追加されてますため紹介いたします。
⚠️ 8c46ac3228762fb442b0080c7eb81e5e918543bb時点での canary バージョンを想定して記述していますが、正式にリリースされる際には仕様などに変更が発生する可能性があります。
deno approve-scripts
以前に紹介した deno approve-scriptsコマンドが追加されています。
この機能はDeno 3.0.0-rc.0で追加されているdeno.jsonのallowScriptsフィールドをベースにしています。
このコマンドの引数にはnpmパッケージを指定可能で、その場合、指定されたパッケージがdeno.jsonのallowScriptsフィールドに追加された後、該当パッケージのライフサイクルスクリプトが実行されます。引数の指定が省略された場合は、deno outdated --update --interactive と同様のUIが表示され、ライフサイクルスクリプトの実行を許可したいパッケージを対話的に選択できます。
# (1) ライフサイクルスクリプトを持つパッケージをインストールします
$ deno install npm:better-sqlite3@12.2.0
Add npm:better-sqlite3@12.2.0
╭ Warning
│
│ Ignored build scripts for packages:
│ npm:better-sqlite3@12.2.0
│
│ Run "deno approve-scripts" to run build scripts.
╰─
# (2) 対話的に特定パッケージに対するライフサイクルスクリプトの実行を許可できます
$ deno approve-scripts
? Select which packages to approve lifecycle scripts for
(<space> to select, ↑/↓/j/k to navigate, a to select all, i to invert selection, enter to accept, <Ctrl-c> to cancel)
❯ ○ npm:better-sqlite3@12.2.0
# (3) `deno.json`の`allowScripts`が更新されます
$ cat deno.json | jq .allowScripts
[
"npm:better-sqlite3@12.2.0"
]
--ignore-readオプションが実装
以前に追加された--ignore-envオプションに続いて、--ignore-readオプションが実装されました。
このオプションで無視されたファイルを読もうとすると、Deno.errors.NotCapableではなくDeno.errors.NotFoundが発生します。
deno.jsonでpublish: falseの指定がサポート
deno.jsonにおいて publish: falseの指定がサポートされています。
これを設定しておくと、対象のパッケージがdeno publishコマンドによるパッケージの公開対象から除外されます。
Deno Workspacesを採用したプロジェクトにおいて、jsrには公開したくない内部的なパッケージに対してpublish: falseを設定することが想定されています。
Deno v3 向けの破壊的変更が一時的に Revert
Deno 3.0.0-rc.0向けに実施されていたグローバルのタイマーAPIに関する変更と、直近で実施されていたdeno compileコマンドに関する破壊的変更が Revert されています。
- Revert “feat: use Node.js timers by default (#31272)” #31490
- Revert “feat(BREAKING/compile): require providing
--for script arguments” #31505
現在はDeno v2.6.0のマイルストーンが公開されており、Deno v3の正式リリースまで一時的にこれらの変更の実施が延期されたようです。
Deno Advent Calendar 2025
Deno Advent Calendar 2025 が開始されています。
すでにいくつかの記事が公開されています。