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

2025/07/28〜2025/08/03の最新情報

Deno v2.4.3 Deno v2.4.3がリリースされています。 deno bundle - --node-modules-dir=manualのサポート package.jsonが存在する場合など、--node-modules-dir=manualが有効化されている際にdeno bundleでエラーが発生する問題が修正されています (#30200) deno task - --recursiveの挙動の改善 deno taskに--recursive (--filter)オプションが指定された際に、パッケージ間の依存関係に基づいて各タスクの実行順序を調整する改善が実施されています (#30129) また、--recursiveオプションが指定された際に、タスクが実行されたパッケージ名が表示されるように改善されています (#30136) deno check - 存在しないモジュールが検出されないバグの修正 存在しないモジュールへのimportが検出された際にエラーが検出されなくなっていた問題が修正されています (#30181) deno run - --configオプションに関するバグ修正 --configが指定され かつ エントリーポイントが../形式で指定された場合にエラーが発生する問題が修正されています (#30208) deno compile - クロスコンパイル時のnpmパッケージの取り扱いの改善 クロスコンパイルする際に、現在のプラットフォーム向け以外のパッケージが検出された際にエラーが発生する問題が修正されています (#30188) また、node_modulesがある際に、最終的にモジュールグラフ内に含まれないパッケージはコンパイル対象から除外されるように挙動が変更されています (#30189) deno lsp - raw imports に関するサポートの改善 deno lspでraw importsのサポートが改善されています。ファイルのリネームに関する挙動の改善や Go to Definition のサポートなどが実施されているようです (#30142) deno publish - relative-package-importエラーの導入 deno publishコマンドでrelative-package-importエラーが導入されています (#30203)。別のパッケージのファイルを相対パス形式でimportしているパッケージが検出された場合にこのエラーが発生するようです。 node:buffer Buffer#subarrayなどのパフォーマンスが改善されています。これにより、Postgres.js使用時のパフォーマンスが2倍近くまで高速化されているようです (#30213) node:process process._rawDebugが実装されています (#30141)...

August 3, 2025

2025/07/14〜2025/07/20の最新情報

Deno v2.4.2 Deno v2.4.2がリリースされています。 deno lsp - tsconfig.jsonのサポート Deno v2.4でdeno checkに導入されたtsconfig.jsonへのサポートがdeno lspに対しても導入されました (#30007) deno check tsconfig.json deno.jsonがcompilerOptionsを持っている場合、tsconfig.jsonよりも優先して参照されるように挙動が変更されています (#30056) また、tsconfig.jsonが検出された際は、tscと同様にnoImplicitOverrideとstrictがデフォルトでfalseとして設定されるように挙動が変更されています (#30045) Side effect import に関するバグ修正 node_modulesディレクトリがある状態で Side effect import が使用されると、ERR_TYPES_NOT_FOUNDエラーが起きてしまう問題が修正されています (#29926) deno bundle - compilerOptions.jsxImportSourceのデフォルト値がreactに設定 compilerOptions.jsxImportSourceが未設定の場合でもJSXファイルを含むコードをバンドルできるよう、compilerOptions.jsxImportSourceのデフォルト値がreactに設定されています (#30082) --unstable-raw-imports - npmパッケージ中のファイルの読み込みがサポート --unstable-raw-importsが指定された場合、npmパッケージ中のファイルに対する文字列もしくはバイト形式によるimportがサポートされています (#30065) シグナルハンドリングの再実装 Denoの内部でシグナルハンドリングに関する再実装が実施されています (#30029) deno_signalsという crate の追加やDeno v2.4.1で Revert されたシグナル受信時にOpenTelemetryシグナルをフラッシュする対応が改めて実施されています。 Node.js互換性に関するバグ修正 globalThis.globalが上書きできない問題が修正されています (#30032) また、node:fsのexists()に不正なパスが渡された場合、エラーとするのではなくfalseを返却するように挙動が修正されています (#29971) @deno/esbuild-plugin@1.1.0 @deno/esbuild-pluginのv1.1.0がリリースされています。 Deno v2.4.0で導入されたテキストまたはバイト形式によるファイルのimportがサポートされています (type: "bytes" & type: "text") Upyo - クロスプラットフォームで動作するメール送信ライブラリ Upyo というメール送信のためのライブラリが公開されています。 リポジトリ: dahlia/upyo JSRパッケージ: jsr:@upyo/core npmパッケージ: npm:@upyo/core Deno/Node....

July 20, 2025

2025/07/07〜2025/07/13の最新情報

Deno v2.4.1 Deno v2.4.1がリリースされています。 Tunnelling deno runに--connectedオプションが追加されています (#30022)。 おそらくDeno Deploy Early Accessに関連した機能であると思われます。 deno runに--connectedオプションもしくはDENO_CONNECTED環境変数が指定されると、まずDenoは指定されたQUICのエンドポイントへ自動的に接続を開始します。デフォルトではtunnel.global.prod.deno-cluster.net:443へ接続されるようです (deno_tunnelというリポジトリが公開されており、おそらくこれが利用されていると思われます) その後、このDenoプロセス内でDeno.serve()が呼ばれると、Denoは起動時に接続されたQUICコネクションからリクエストを待ち受けるよう挙動が変更されるようです。 QUICエンドポイントへの認証については、deno deploy tunnel-loginコマンドによって取得したトークンを使用して認証が行われるようです (トークンはkeyring-rsを使用して保存されるようです)。また、この際にdeno.jsonのdeployフィールドに設定情報が保存されるようです (org, app) OpenTelemetry vsockトランスポート OTEL_DENO_VSOCK環境変数がサポートされています (#30001) この環境変数にカンマ区切りでCIDとポートを設定しておくと、指定されたvsock向けに Signals が送信されるようです。 Deno v2.3.5での対応のロールバック Deno v2.3.5で実施された、シグナル受信時にバッファリングされていた Signals をフラッシュする対応が Revert されています (#30019) プロセスが意図せず終了しなくなってしまう問題が発生することがあるようで、それを回避することが目的のようです (#29590) deno bundleのバグ修正 deno bundleに関するバグ修正が実施されています: ブラウザー向けのバンドル (--platform browser) がブラウザーでうまく動作しない問題が修正されています (#30023) --minifyが適用された場合にrequire()が適切に動作するよう修正されています (#29997) npmパッケージ中のsloppy importsが適切に解決されるよう改善されています (#29989) deno serve - Import mapsによるエントリーポイントの解決がサポート Deno v2.4でdeno runコマンドに導入されたImport mapsによるエントリーポイントの解決がdeno serveコマンドでも動作するよう改善されています (#29974) --unstable-raw-imports - npmパッケージに関する挙動の変更 npmパッケージ中にtype: "text"もしくはtype: "bytes"形式のimportが検出された場合、--allow-readを要求するように挙動が変更されています (#29990)...

July 13, 2025

2025/06/30〜2025/07/06の最新情報

Deno v2.4.0 Deno v2.4.0がリリースされました。 以下のページに変更内容をまとめているため、よろしければ参照ください: Deno v2.4 deno_stdのリリース deno_stdのリリースが行われています (release-2025.07.01) @std/text@1.0.15 @std/text@1.0.15がリリースされています。 新規モジュール @std/text/unstable-longest-common-prefixモジュールが追加されています (#6734)。longestCommonPrefix()という配列の中の各文字列から共通する最長の接頭辞を見つけるための関数が提供されます。 また、@std/text/unstable-to-sentence-caseと@std/text/unstable-to-title-caseも追加されています (#6701)。 それぞれtoSentenceCase()とtoTitleCase()を提供します。 @std/text/unstable-dedent - バグ修正 dedent()で空行が意図せず取り除かれてしまう問題が修正されています (#6738) @std/http@1.0.19 - ファイルサーバーのパフォーマンス改善 @std/http@1.0.19がリリースされています。 @std/http/file-server HTMLのレンダリングのパフォーマンスがかなり改善されています (#6727) Aleph.jsのメンテナンスが停止 Aleph.jsのメンテナンスが停止されたようです。リポジトリもアーカイブされています。 今後はFreshへの移行が推奨されています。

July 6, 2025

Deno v2.4

はじめに Deno v2.4がリリースされました。 この記事では主な変更点などについて解説します。 OpenTelemetryサポートが安定化 DenoのOpenTelemetryサポートが安定化されました (#29822) これによって--unstable-otelの指定が不要化され、OTEL_DENOのみの指定によってOpenTelemetryサポートを有効化できます。 --unstable-raw-importsが追加 (ファイルのテキスト/バイト形式での読み込みがサポート) --unstable-raw-importsオプションがサポートされています (#29855, #29924) このオプションを指定すると、Import Attributes ( type: "bytes"またはtype: "text")によって文字列もしくはバイト (Uint8Array) 形式でファイルを読み込むことができます: import data from "./data.txt" with { type: "text" }; console.info(data); // => "foo" この機能はDENO_UNSTABLE_RAW_IMPORTS環境変数によって有効化することも可能です。 また、deno publishコマンドではまだこの機能はサポートされていないようです (#29954) deno bundleについて Deno v2.3.6で、esbuildをベースにdeno bundleコマンドが再導入されています。 このリリースでは、このdeno bundleコマンドでも--unstable-raw-importsオプションのサポートが追加されています (#29908) また、このdeno bundleコマンドに関する公式ドキュメントも追加されています (denoland/docs#1866) Deno v2.4に関する公式ブログによると、今後、このdeno bundleの機能をAPI経由で利用できるようにすることが検討されているようです。 deno updateコマンドが追加 deno updateコマンドが追加されています (#29187) このコマンドによって依存関係の更新を行うことができます (実質的にdeno outdated --updateのエイリアスとして機能します) $ deno update --latest @ts-morph/ts-morph deno deployコマンドについて 小さな変更ですが、Deno v2....

July 6, 2025

2025/06/23〜2025/06/29の最新情報

Denoの直近の変更について 直近でDeno v2.4向けと思われる機能がいくつかマージされているため、紹介します。 --unstable-raw-imports (DENO_UNSTABLE_RAW_IMPORTS)がサポート Import Attributesにおいてtype: "bytes"及びtype: "text"の指定がサポートされています (#29855)。それぞれ、指定したファイルを文字列もしくはバイト (Uint8Array) 形式で読み込むために利用することができます: import data from "./data.txt" with { type: "text" }; console.info(data); // => "foo" この機能を有効化するためには、--unstable-raw-importsの指定が必要です: $ deno run --unstable-raw-imports main.js Deno.execPath()における--allow-readの指定が不要化 Deno.execPath()が--allow-readを要求しないよう挙動が変更されています: feat: Deno.execPath() no longer requires –allow-read permission #29620 Deno.execPath()が--allow-read=denoの要求を促すことで、ユーザーが allowlist を指定せずに--allow-readによってあらゆるファイルの読み込みを許可してしまうケースが多く、却ってセキュリティリスクを増してしまうとの判断からこの変更が実施されたようです。 deno updateコマンドが追加 deno updateコマンドが追加されています: feat: add ‘deno update’ subcommand #29187 このコマンドの挙動は依存関係の更新のために利用することができます (実質的にdeno outdated --updateのエイリアスとして機能するようです) deno fmt - .svg/.xml/.mustacheのサポート deno fmtコマンドで.svg/.xml/.mustacheをサポートするPRがマージされています: feat(fmt): add support for ....

June 29, 2025

2025/06/16〜2025/06/22の最新情報

OpenTelemetryサポートの安定化について DenoのOpenTelemetryサポートを安定化するPRが作成されています: feat(otel): Stabilize OpenTelemetry support #29822 今後は--unstable-otelの指定は不要化され、OTEL_DENOなどの指定のみで利用できそうです。 このPRは2.4.0のマイルストーンに含まれており、Deno v2.4でのリリースが検討されているようです。 deno publishでのnpmパッケージの公開について deno publishでnpmパッケージの公開をサポートするため、--npmオプションを追加するPRが作成されています: feat(publish): allow publishing to npm #29823 現状ではまだ実装途中の段階のようですが、今のところdeno runコマンド経由でnpm (npm:npm@11.4.2) を実行することでnpmパッケージを公開できるようにすることが想定されているようです (cli/tools/publish/npm.rs#L15) このPRについては2.4.0のマイルストーンに含まれていないため、リリースは少し先になるかもしれません。 Freshにおけるesbuild_deno_loaderから@deno/esbuild-pluginへの移行について Freshでは長らくesbuild_deno_loaderというesbuildプラグインが使用されていました。Freshにおいてこのesbuild_deno_loaderから先週に紹介した@deno/esbuild-pluginへ移行が行われています: fix(core): move to new esbuild deno plugin #3034 まだリリースは行われていないものの、この変更によって、Deno本体とFreshにおけるモジュール解決の振る舞いの互換性がより改善されそうです。 Hono v4.8.0 Hono v4.8.0がリリースされています。 hono/routeが追加 hono/route (Route Helper)という新しいモジュールが追加されており、Contextオブジェクトを引数に渡すことでクライアントから要求されたパスなどの情報を取得することが可能です。 hono/ssg - プラグインシステムが実装 hono/ssgにおいてプラグインシステムが実装されています。 toSSG()に追加されたpluginsオプションでプラグインを指定可能で、フックを実装することによってページの生成に関する振る舞いのカスタマイズなどができるようです。 各種ミドルウェアの改善 各種ミドルウェアで様々な改善が実施されています: ミドルウェア 変更内容 hono/jwt Authorization以外のヘッダーがサポート (headerNameオプション) hono/cors allowMethodsオプションで関数の指定がサポート hono/jsx/streaming <StreamingContext>が追加 (<script>へのnonce属性の設定がサポート) hono/jwk allow_anonオプションが追加 (trueを指定すると、有効なトークンが見つからない場合でも次のミドルウェアーが実行されます) hono/cache cacheableStatusCodesオプションが追加, キャッシュ対象のステータスコードを指定できます (デフォルトは200のみ) Hono#fireの非推奨化 代わりにhono/service-workerのfire()への移行が推奨されています。...

June 22, 2025

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

Deno v2.3.6 Deno v2.3.6がリリースされています。 deno.json - patchからlinksへのリネーム deno.jsonのpatchがlinksへリネームされています (#29677, #29714) deno.jsonのpatchは元々、JSRパッケージやnpmパッケージにパッチを適用するために導入された機能で、今回のlinksへのリネームに伴い、特に利用法などに変更はないようです。 patchについてはまだサポートされているようですが、将来的に削除される予定のようです。 esbuildベースのdeno bundleコマンド esbuildをベースにdeno bundleコマンドが再実装されました (#29470, #29706, #29651, #29683, #29680) $ cat main.js import pc from "npm:picocolors@1.1.1"; console.info(pc.green("foo")); $ deno bundle --output bundle.js main.js ⚠️ deno bundle is experimental and subject to changes bundled in 28ms $ deno run --allow-env bundle.js foo 今後、Freshとの統合も検討されているようです: https://x.com/rough__sea/status/1933244186104639839 deno deploy 以前に紹介したdeno deployサブコマンドがリリースされています。Deno Deploy Early Accessに関連した変更だと思われます。 利用するためにはDENO_DEPLOY_SUBCOMMAND環境変数によって明示的に有効化する必要があるようです。 $ DENO_DEPLOY_SUBCOMMAND=1 deno deploy --help Usage: deno deploy [OPTIONS] [args]....

June 15, 2025