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

2025/06/02〜2025/06/08の最新情報

直近のDenoの変更について 直近でDeno v2.4向けと思われる変更がいくつか実施されているため、紹介します。 --node-conditionsオプションのサポート Denoに--unstable-node-conditionsオプションを追加するPRがマージされています。 feat: stabilize –node-conditions flag #29628 これはNode.jsの--conditionsに相当するオプションで、react-server conditionを有効化したい場合などに利用できそうです: $ deno run --unstable-node-conditions react-server -A main.mjs このオプションはv2.4で安定化が計画されているようで、すでにドキュメントも公開されています: feat: stabilize –node-conditions flag (denoland/deno#29628) add docs for –unstable-node-conditions (denoland/docs#1800) --preload/--importオプション まだマージはされていませんが、Denoに--preload (--import) オプションを追加するPRが作成されています: feat: add support for –preload/–import flag #29626 これはNode.jsの--requireや--importに相当するオプションのようで、エントリーポイントとして指定したモジュールの実行前に読み込みたいモジュールを指定できます。 $ deno run --import @std/dotenv/load main.mjs esbuildベースのdeno bundleコマンド 先週に紹介したesbuildベースのdeno bundleコマンドがマージされています。後述の@deno/rolldown-pluginなども含め、Denoから利用できるバンドラーの選択肢が増えそうです。 @deno/rolldown-plugin Deno公式からRolldownプラグインが公開されています: JSRパッケージ: @deno/rolldown-plugin リポジトリ: denoland/deno-rolldown-plugin @deno/loader Deno公式から@deno/loaderというパッケージが公開されています: JSRパッケージ: @deno/loader リポジトリ: denoland/deno-js-loader 各種バンドラーなど向けに、Denoの内部でも使用されているdeno_graphや各種モジュール解決の仕組みなどをベースに、Denoと同様の振る舞いに基づいて specifier や依存解決などの機能を提供することが目的のパッケージのようです。先程の@deno/rolldown-pluginを実装するために利用されています。

June 8, 2025

2025/05/26〜2025/06/01の最新情報

Deno v2.3.4 & v2.3.5 Denoのv2.3.4とv2.3.5がリリースされています。 CLI --unstable-subdomain-wildcardsが追加 --unstable-subdomain-wildcardsオプションが追加されています (#29327) --allow-netにおいてサブドメインに対するワイルドカード指定が有効化されます: $ deno run --unstable-subdomain-wildcards --allow-net='*.github.com' main.mjs DENO_UNSTABLE_SUBDOMAIN_WILDCARDS環境変数によって有効化することも可能です。 DENO_USR2_MEMORY_TRIM環境変数の導入 DENO_USR2_MEMORY_TRIMという環境変数が導入されています (#29295) この環境変数が設定された場合、SIGUSR2シグナルが受信された際に、Denoがmalloc_trim(0)でヒープの開放を行ってくれます。この環境変数はLinuxでのみ利用可能です。おそらく、後述するDeno Deploy Early Accessに関連した変更ではないかと思われます。 --frozenオプションの拡充 deno uninstallやdeno docなどの一部コマンドで--frozenオプションがサポートされていなかった問題が修正されています (#29508) Web API globalThis.performanceの取り扱いの変更 ユーザーコードとnpmパッケージとの間でglobalThis.performanceが同一のオブジェクトが共有されるよう挙動が変更されています (#29323) 今までは、ユーザーコードとnpmパッケージ中のコードにおいてglobalThis.performanceが異なるオブジェクトを参照していました。具体的には、ユーザーコードではWeb Performance APIsにおけるPerformanceオブジェクト、npmパッケージ中のコードではnode:perf_hooksモジュールのPerformanceオブジェクトがそれぞれ参照されていました。 今回のリリースに伴い、ユーザーコードとnpmパッケージ中のコードの両方がglobalThis.performanceによってnode:perf_hooksモジュールのPerformanceオブジェクトを参照するよう挙動が変更されています。 WebGPU Deno.UnsafeWindowSurfaceにresize()というメソッドが実装されています (#29254) このメソッドはウィンドウのサイズが変更された際に呼ばれることが想定されています。 また、GPUQueue#onSubmittedWorkDoneが実装されています (#29255) deno lsp deno/testRunの改善 deno lspから実行したテストが失敗した際に、Deno.test()の行ではなく実際にエラーが発生した行にエラーが表示されるよう改善されています (#29221) プロジェクト外のdeno.jsonの参照がサポート .vscode/settings.jsonのdeno.configにおいて、プロジェクト外のdeno.jsonの指定がサポートされています (#29420) Auto importの改善 Workspaceメンバーに対する相対パス形式ではなく bare specifier によってimportが追加されるよう改善されています (#29304) また、deno.jsonのpatchで指定されたjsrパッケージに対して、相対パス形式でimportが追加される問題が修正されています (#29437) deno task - タスクのワイルドカード指定に関するバグ修正 deno task check:*のようにワイルドカード形式でタスクを指定した場合、先頭一致ではなく部分一致によってタスクが探索されてしまう問題が修正されています (#29343)...

June 1, 2025

2025/05/19〜2025/05/25の最新情報

Reports of Deno’s Demise Have Been Greatly Exaggerated Denoの公式ブログで以下のような記事が公開されています: Reports of Deno’s Demise Have Been Greatly Exaggerated この記事では、先週の Fresh v2 に関する紹介に続けて、現在のDeno DeployやDeno KVにおいての直近での取り組みや今後について紹介されています。具体的には以下のような取り組みなどが進められているようです: 特定のリージョンへのアプリケーションの固定のサポート 自身のクラウド内でのアプリケーション実行のサポート (推測ではありますが、Deno Deploy NextGenのことを指している可能性が高いのではないかと思います) Deno Deployから関係データベースの利用をよりシンプルにするための取り組み Cloudflare Durable Objectsに影響を受けた状態管理のための仕組み これらについては、今後、詳細が共有される計画のようです。 deno deployサブコマンドについて まだマージはされていませんが、Deno本体にdeno deployサブコマンドを実装するPRが作成されています: feat: deploy subcommand (denoland/deno#29407) 内部的には@deno/deployパッケージを実行している模様で、プロジェクト内の各ファイルをDeno Deployにアップロードする機能などが提供されているようです。 先程紹介したDeno公式の Reports of Deno’s Demise Have Been Greatly Exaggerated の記事において、Denoは単純なJavaScriptランタイムではなくプラットフォームであることを意識されているようで、この変更もその一環ではないかと思われます。 参考 1461910 jsr:@deno/deploy@0.0.2 Deno SvelteKit adapter (@deno/svelte-adapter) Deno公式からSvelteKit向けのアダプター (@deno/svelte-adapter) が公開されています:...

May 25, 2025