2025/09/29〜2025/10/05の最新情報

Deno v2.5.3 Deno v2.5.3がリリースされています。 パーミッションブローカー (DENO_PERMISSION_BROKER_PATH) 先週に紹介したパーミッションブローカーがリリースされました (#30826) 先週に紹介した時点からの差分として、追加で以下の改善が実施されています: レスポンスでreasonフィールドがサポート (#30902) 任意でこのフィールドに文字列を設定することで、権限が拒否された際にユーザーへ表示されるメッセージをカスタマイズできるようです。 Windows でのパーミッションブローカーのサポート (#30894) DENO_PERMISSION_BROKER_PATHに名前付きパイプへのパスを指定することで有効化できるようです。 deno check cloudflare:などのDenoがサポートしないURLスキームが検出されるとエラーが発生する問題が修正されています (#30904)。v2.5.2によるリグレッションであったようです (#30898) また、deno checkコマンドで--v8-flagsオプションがサポートされています (#30868) deno run --watchオプションが指定され かつ Deno.addSignalListener()によってSIGINTへのリスナーを登録してる場合、プロセスがSIGINTで終了しなくなる問題が修正されています (#30635) Deno API Deno.FsFile#stat()のパーミッションの見直し read: falseを指定して実行したDeno.open()から返却されたDeno.FsFileに対してstat()メソッドを呼んだ際に、該当ファイルに対する--allow-read権限が要求されるよう挙動が変更されています (#30876) Deno.FsFile#utime()のパーミッションの見直し write: falseを指定して実行したDeno.open()から返却されたDeno.FsFileに対してutime()メソッドを呼んだ際に、該当ファイルに対する--allow-write権限が要求されるよう挙動が変更されています (#30872) Node.js互換性の改善 node:sqlite --allow-allが指定されている場合のみ ATTACH DATABASE の実行がサポートされました (#30763) node:timers/promises setTimeout()でsignalオプションがサポートされています (#30855) bundleDependencies bundleDependenciesおよびbundledDependenciesの両方が定義されたnpmパッケージをインストールするとエラーが発生する問題が修正されています (#30875) Tunnelling Deno v2.4.1で実装された--connectedオプションが--tunnelにリネームされています (#30786) typescript-goとの統合について (--unstable-tsgo) まだマージはされていないですが、deno checkでtypescript-goを利用できるようにするPRが作成されています: feat(unstable): typescript-go integration for deno check #30920 c0fde0e81ec6c7b5e5e7512b2958be93bb3e41fbの時点においては、--apiオプションを指定して子プロセスとして起動したtsgoとプロセス間で通信することによって統合が実現されているようです。...

October 5, 2025

2025/09/22〜2025/09/28の最新情報

Deno v2.5.2 Deno v2.5.2がリリースされています。 deno lsp deno lspでdescribe()/it()で定義されたテストの検出と実行がサポートされています (#30802) deno bundle deno bundle --watchにHTMLエントリーポイントを指定している場合、変更の検出時に出力されたHTMLファイルが適切にビルドされない問題が修正されています (#30790) また、deno bundleで--frozenのサポートが追加されています (#30825) deno coverage Worker内のコードに対してもカバレッジが計測されるよう改善されています (#30807) TypeScript compilerOptions.pathsのサポート deno checkコマンドでcompilerOptions.pathsがサポートされています (#30766) Uint8Arrayに Base64/Hex 関連のAPIに関する型定義が追加 Deno v2.5.0におけるV8のアップデートに伴い、下記APIの型定義が追加されました (#30686): Uint8Array#toBase64() Uint8Array#setFromBase64() Uint8Array#toHex() Uint8Array#setFromHex() Uint8Array.fromBase64() Uint8Array.fromHex() Promise<undefined> から Promise<void> への変更 TypeScript 公式の型定義に合わせて、以下の各プロパティーの型定義が Promise<undefined> から Promise<void> へ変更されています (#30820): ReadableStreamGenericReader#closed WritableStreamDefaultWriter#closed WritableStreamDefaultWriter#ready WebTransport#ready WebSocket Deno 2.5.1からWebSocketの接続時にUser-Agentヘッダーが送信されなくなっていた問題が修正されています (#30758) node:fs statfs()でpath引数にBufferの指定がサポートされています (#30662) また、readFile()でencoding: "binary"の指定時にStringを返すよう挙動が修正されています (#30830) node:crypto timingSafeEqual()にArrayBufferのサポートが追加されています (#30773)...

September 28, 2025

2025/09/15〜2025/09/21の最新情報

Deno v2.5.1 Deno v2.5.1がリリースされています。 Deno API Deno.HttpClient WebSocketでclientオプション (Deno.HttpClient) がサポートされています (#30692)。 これにより、プロキシーの利用やallowHostオプションによりHostヘッダーのカスタマイズなどが可能です。この改善にあわせてHTTP_PROXYなどのプロキシー関連の環境変数がWebSocketにも適用されるよう改善されています。 また、Deno.createHttpClient()でproxy.transport: "tcp"がサポートされています (#30700) Deno.serve() DENO_SERVE_ADDRESSにduplicate,<address>形式のアドレスが指定された際に、signalやonErrorオプションも引き継がれるよう改善されています (#30680) Deno.bundle() --unstable-bundleなしでDeno.bundle()を使用した際に--unstable-bundleの指定が促されるように改善されています (#30682) deno init macOSでdeno init --npmが動作しなくなっていた問題が修正されています (#30730) deno lsp deno.cacheOnSaveによる依存関係のキャッシュ時はdeno.lockを更新しないよう挙動が変更されています (#30733) deno check SvelteKit における$app/environmentなど、bare specifier 形式の ambient module でエラーが発生しないよう挙動が変更されています (#30690) node:fs 以下の改善が実施されています。 Windowsでfchmod()がサポートされています (#30704) glob()のcwd引数でURLオブジェクトの指定がサポートされています (#30705) callback引数を指定せずにclose()を呼ぶとエラーが発生する問題が修正されています (#30720) readlink()のpath引数でBufferの指定がサポートされています (#30691) node:process process.envにおいて空文字列などの falsy な値を持つ環境変数がObject.keys()などで返却されない問題が修正されています (#30708) Fresh v2.1.0 Fresh v2.1.0のリリースが実施されています。 @fresh/core@2.1.0 @fresh/core@2.1.0がリリースされています。 CSPミドルウェア csp()ミドルウェアが追加されています (#3421) 指定されたオプションに基づいてContent-Security-Policyヘッダーを設定してくれます。 複数ミドルウェアのサポート Fresh v1 でサポートされていた_middleware....

September 21, 2025

2025/09/08〜2025/09/14の最新情報

Deno v2.5 Deno v2.5.0がリリースされました。 以下のページに変更内容をまとめているため、よろしければ参照ください: Deno v2.5 Fresh v2 が正式にリリース Fresh v2 (@fresh/core@2.0.0) のリリースについて 2025/09/10 に Fresh v2 (@fresh/core@2.0.0)が正式にリリースされました。 2.0.0 chore: release 2.0.0 (#3371) 注意点として、Viteプラグイン (@fresh/plugin-vite)やTailwind CSSプラグイン (@fresh/plugin-tailwind)についてはFreshの本体である@fresh/coreパッケージとは独立してバージョニングされており、これらのパッケージの現時点での最新メジャーバージョンはv2ではなくv1です。 その後のアップデート Fresh v2 の正式リリース後も引き続き開発が進められています。 @fresh/plugin-vite@1.0.2では.envの読み込みがサポートされています (#3416)。.envに加えて、環境に応じて追加で以下のファイルも読み込まれるようです: .env.local .env.{development,production} .env.{development,production}.local また、Fresh v2 アプリケーションをdeno compileできるよう、ビルド後に_fresh/compiled-entry.jsというファイルを生成する改善も実施されています (#3410)

September 14, 2025

Deno v2.5

はじめに Deno v2.5がリリースされました。 この記事では主な変更点などについて解説します。 deno bundle Deno.bundle()APIが追加 deno bundleコマンドの機能をプログラムから利用するためのDeno.bundle()APIが正式にリリースされました (#29949) Deno.bundle()を利用するためには--unstable-bundleによって明示的に有効化が必要です: const result = await Deno.bundle({ entrypoints: ["./mod.ts"], platform: "deno", }); console.assert(result.success); const [outputFile] = result.outputFiles; const bundledCode = outputFile.text(); console.assert(typeof bundledCode === "string"); outputPathやoutputDirオプションを指定することで、バンドル結果がファイルシステムへ書き込まれます (--allow-writeの指定は不要なようです): const result = await Deno.bundle({ entrypoints: ["./mod.ts"], platform: "browser", minify: true, sourcemap: "external", outputDir: "dist", }); console.assert(result.success); HTMLエントリーポイントのサポート deno bundleでHTMLエントリーポイントのサポートが追加されています (#29856) 例として、バンドル対象のHTMLとJavaScriptモジュールを準備しておきます。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> </head> <body> <script type="module" src="....

September 14, 2025

2025/09/01〜2025/09/07の最新情報

Deno v2.5 向けの機能の追加について Deno v2.5 向けに直近でマージされた内容について紹介します (⚠️まだ正式にはリリースされていないため、今後、APIの使い方に変更が発生する可能性があります) Deno.bundle()APIが追加 deno bundleコマンドの機能をプログラムから動的に利用するために、Deno.bundle()というAPIが追加されています。 feat(bundle): runtime API for deno bundle #29949 Deno.bundle()を利用するためには--unstable-bundleによって明示的に有効化が必要です: const result = await Deno.bundle({ entrypoints: ["./mod.ts"], platform: "deno", }); console.assert(result.success); const [outputFile] = result.outputFiles; const bundledCode = outputFile.text(); console.assert(typeof bundledCode === "string"); outputPathやoutputDirオプションを指定することで、バンドル結果がファイルシステムへ書き込まれます (--allow-writeの指定は不要なようです): const result = await Deno.bundle({ entrypoints: ["./mod.ts"], platform: "browser", minify: true, sourcemap: "external", outputDir: "dist", }); console.assert(result.success); まだマージはされていませんが、現在、プラグイン (pluginsオプション) のサポートに関する実装も進められているようです:...

September 7, 2025

2025/08/25〜2025/08/31の最新情報

Deno v2.5 向けの機能の追加について Deno 2.5.0 向けのマイルストーンに関連して、新機能を実装するためのPRがいくつか作成されているため、紹介します。 Deno.testへのbefore*/after*フックのサポート まだマージはされていませんが、Deno.test配下に Vitest や Jest ライクなbefore*/after*APIをサポートするPRが作成されています: feat(test): Add setup and teardown APIs to Deno.test API #30504 af75749のコミットの時点では、以下の4つのフックが実装されています: Deno.test.beforeAll() Deno.test.afterAll() Deno.test.beforeEach() Deno.test.afterEach() Deno.ChildProcess.{stdout,stderr}へのResponseライクな問い合わせメソッドの追加 Deno.ChildProcessのstdout及びstderrプロパティーにおいて、Responseライクに出力内容を取得するためのユーティティーメソッドを追加するPRが作成されています: feat(ext/process): add collector utilities to ChildProcess.stdout & ChildProcess.stderr #30552 const command = new Deno.Command(Deno.execPath(), { args: ["json_reference"], stdout: "piped", }).spawn(); const json = await command.stdout.json(); 852714eのコミットの時点においては、以下の4つのメソッドが実装されています: arrayBuffer bytes json text Fresh v2 関連のアップデート @fresh/init@2....

August 31, 2025

2025/08/18〜2025/08/24の最新情報

Deno v2.4.5 Deno v2.4.5がリリースされています。 deno lsp Pull Diagnostics deno lspでPull Diagnosticsが実装されています (#30325) workspace/willRenameFilesの改善 .jsから.tsへのリネームが適切に動作するよう改善されています (#30458) deno install DENO_INSTALL_ARCH環境変数 DENO_INSTALL_ARCH環境変数がサポートされています (#30473) DENO_INSTALL_ARCH=aarch64のように指定することで、deno installによってインストールされる際に取得されるnpmパッケージを変更できます。 出力の改善 インストールされたパッケージ名が表示されるよう出力が改善されています (#30387) ❯ deno install Packages: 9 +++++++++ Resolved: 9, reused: 0, downloaded: 9, added: 9 Dependencies: + jsr:@david/dax 0.41.0 + jsr:@david/which 0.4.1 + jsr:@std/assert 0.221.0 + jsr:@std/bytes 0.221.0 + jsr:@std/fmt 0.221.0 + jsr:@std/fs 0.221.0 + jsr:@std/io 0.221.0 + jsr:@std/path 0.221.0 + jsr:@std/streams 0.221.0 --entrypointの改善 deno.jsonのexcludeで除外されているモジュールが--entrypoint (-e) でエントリーポイントに指定された際に、ダウンロードが実行されない問題が修正されています (#30442)...

August 24, 2025

2025/08/11〜2025/08/17の最新情報

Deno v2.4.4 Deno v2.4.4がリリースされています。 Web API EventSourceでヘッダーのカスタマイズがサポート EventSourceでheadersオプションがサポートされています (#30278) Deno独自のオプションのようで、リモートリソースへ接続する際に送信されるヘッダーをカスタマイズできます。 Deno KV - 環境変数の追加 Deno KV向けに以下の環境変数がサポートされています (#30320) 環境変数 概要 DENO_KV_DEFAULT_PATH Deno.openKv()にデータベースパスが指定されたなかった際のデフォルトのパスを指定できます DENO_KV_PATH_PREFIX 指定されると、Deno.openKv()に指定されたデータベースパスに、この環境変数の値がプレフィックスとして結合されます deno repl - --jsonオプションが追加 deno replコマンドに--jsonオプションが追加されています (#30307) このオプションが指定されると、Denoがファイルディスクリプター3にパイプを作成し、それを介してJSONメッセージを送信することで、Denoに指定したコードを動的に実行させる仕組みのようです。まず後続のペイロード長をリトルエンディアン形式の32ビット整数として書き込み、その後に { type: "Run", code: "<code>", output: true, }形式のJSONペイロードをパイプに書き込むことで、指定された<code>をDenoが実行し、その結果をパイプ経由で読み込むことができるようです。 deno bundle package.jsonの取り扱いの改善 require()によってパッケージのサブディレクトリを指定した際に、package.jsonの内容が考慮されるよう挙動が改善されています (#30253) また、ESM形式のモジュールからpackage.jsonを持つディレクトリへのimportがサポートされています (#30273) Conditional exports に関する改善 --platform=browserが指定されたら、npmパッケージのbrowserもしくはimport conditionsが解決されるように挙動が変更されています (#30250) deno compile - Deno.build.standaloneに関するバグ修正 deno compileによって生成された実行可能ファイルにおいて、Worker内だとDeno.build.standaloneが未設定になってしまう問題が修正されています (#30335)...

August 17, 2025

2025/08/04〜2025/08/10の最新情報

deno.jsonでのパーミッションセットの定義について まだDraft状態ですが、deno.jsonでのパーミッションセットの定義をサポートするPRが作成されています。 feat: permissions in the config file #30330 以前に導入が検討されていた頃の仕様と比較して、以下のような変更点がありそうです (まだマージはされていないため、今後、仕様が変わる可能性があります): deno.jsonにおいてパーミッションセットの一覧を定義するためのフィールド名がpermissionSetsからpermissionsに変わっています。 bench/compile/testという名前のパーミッションセットは特別扱いされ、パーミッションセットが省略された状態で-P(--permission-set)オプションが指定された際に、それぞれdeno bench/deno compile/deno testの実行時に自動で適用されるようです (cli/args/mod.rs#L1172-L1188) deno.jsonで複数のパーミッションセットを定義することができます: { "permissions": { "default": { "read": ["data"], "net": true }, "tool": { "read": ["src"], "write": ["generated"] } } } -Pまたは--permission-setによって定義されたパーミッションセットを適用できます: # `default`パーミッションセットを適用 $ deno run -P main.ts # `tool`パーミッションセットを適用 $ deno run --permission-set=tool tools/codegen.ts FreshのViteプラグインが公開 (@fresh/plugin-vite) 直近で開発されていたFreshのViteプラグインが正式にマージされています:...

August 10, 2025