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/21〜2025/07/27の最新情報

Deno Deploy EA におけるデータベースのサポートについて Deno Deploy EAアプリケーションからのPostgreSQLへの接続サポートが追加されているようです: Feat: Deploy EA Databases (#1908) Deploy EA changelog for 21 July 2025 (#2384) あらかじめ Deno Deploy のダッシュボードから登録しておいたデータベースを Deno Deploy アプリケーションに割り当てることが出来るようです。 Deno Deploy は本番やプレビューなどの各環境ごとに自動でデータベースを作成し、各環境のアプリケーションに対してPGHOST/PGPORT/PGDATABASEなどの環境変数を自動で割り当ててくれるため、特に設定をせずともnode-postgresなどのパッケージによって適切なデータベースへ接続が出来る仕組みのようです。 現時点ではPostgreSQLのみがサポートされており、今後、MySQLやMongoDB, Redisなどのサポートも検討されているようです (Supported Database Engines) Fresh v2 に関する直近でのアップデート まだFresh v2は正式リリースされたわけではないですが、直近でいくつか大きな変更が実施されているため、紹介します。 Tailwind CSS v4のサポート @fresh/plugin-tailwind@0.0.1-alpha.8がリリースされています。このリリースではTailwind CSS v4がサポートされています (#3054) @fresh/plugin-tailwind-v3というパッケージも追加されており、Tailwind CSS v3についてはこのパッケージからサポートが提供されます (#3135) 公式ミドルウェアの拡充 CORS (#3013) や CSRF (#3018) 向けのミドルウェアがFreshの公式リポジトリに追加されています。これらは@fresh/coreパッケージから提供されています。 ユーザーコードをimportせずにビルドできるようにする変更 今まで、ビルドを実行する際にユーザーコードをimportしていた関係で、一部のケースにおいてFreshのビルドが終了しなくなってしまう問題の修正が行われています (#3122) この変更の影響として、ファイルベースの Route の登録方法が変更されています。ファイルベースの Route を有効化したい場合、fsRoutes()ではなくApp#fsRoutesを実行する必要があるようです。(ファイルベースの Route はBuilderによって処理されるよう挙動が変更されているようです)...

July 27, 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/05/12〜2025/05/18の最新情報

Deno v2.3.2 & v2.3.3 Deno v2.3.2とDeno v2.3.3がリリースされています。 https://github.com/denoland/deno/blob/395878c5fb72d87a44f7c88ce9f391acc31feab3/Releases.md#233--20250516 deno lint deno lintプラグインでコメントの取得がサポートされています (#29189) SourceCodeクラス (RuleContext.sourceCodeからアクセス可能) にgetAllComments()/getCommentsBefore()/getCommentsAfter()/getCommentsInside()メソッドが追加されています。 また、Programにもcommentsプロパティーが追加されています。 deno coverage deno coverage --htmlで生成されるHTMLレポートで、OS設定に基づいてlightとdarkテーマが切り替わるように改善されています (#29267) deno jupyter - 複数カーネルの管理がサポート deno jupyterコマンドで複数のカーネルをインストール・管理するための機能が導入されています (#29249) --nameオプション deno jupyterコマンドに--nameオプションが追加されています。 --installオプションとともに--nameオプションが指定されると、カーネルがインストールされる際のディレクトリ名を変更できます (デフォルトはLinuxだと~/.local/share/jupyter/kernels/denoで、--name deno-canaryを指定すると~/.local/share/jupyter/kernels/deno-canaryにインストールされます) --installが省略された場合、--nameオプションによって指定された名前でkernel.jsonがインストールされているか確認できます。 deno jupyter --install --display <name> deno jupyter --installに--displayオプションが追加されています。 このオプションを指定することで、kernel.jsonのdisplay_nameをカスタマイズできます (デフォルトはDeno) deno jupyter --install --force deno jupyter --installに--forceオプションが追加されています。 このオプションを指定すると、カーネルがすでにインストール済みである際も強制的にカーネルを再インストールしてくれます。 deno check Ambient moduleに関する挙動の改善 Ambient moduleによって型が定義されたパスに対して発生する型エラーが無視されるよう挙動が変更されています (#29135) 例えば、Ambient moduleによって*.svgに対する型定義が定義されていたら、*.svgに対するimportによって型エラーが起きぬように改善されています。 deno.lock deno.lockの更新タイミングが型チェックの実行前から実行後へ変更されています (#29265) 型チェックの実行時にはじめて@types/nodeが必要となるケースがあるため挙動が変更されたようです。...

May 18, 2025

2024/09/30〜2024/10/06の最新情報

The Final Touches: What’s New In v2.0.0-rc.10 後述するDeno v2.0.0-rc.10に関する記事がDeno公式ブログで公開されています: The Final Touches: What’s New In v2.0.0-rc.10 上記の記事によると、Deno v2の正式リリースについては今週に予定されているようです。 Deno Deploy NextGen Deno公式からDeno Deploy NextGenが公開されています: Deno Deploy NextGen これはKubernetesクラスター上でユーザーがDeno Deployのインフラストラクチャーを実行するための基盤のようで、現時点だとAWSとAzureがサポートされているようです。 Deno v2.0.0-rc.8/v2.0.0-rc.9/v2.0.0-rc.10がリリース Denoのv2.0.0-rc.8〜v2.0.0-rc.10がリリースされています: v2.0.0-rc.7からv2.0.0-rc.8までの差分 v2.0.0-rc.8からv2.0.0-rc.9までの差分 v2.0.0-rc.9からv2.0.0-rc.10までの差分 破壊的変更 URLPattern#execの振る舞いの変更 Deno v1.46.0で導入され、 Deno v1.46.1で取り消されたURLPattern#execの振る舞いの変更が改めて実施されました。 URLPattern#execでパターンにマッチするグループがない場合にgroups[key]にundefinedが設定されるように振る舞いが変わります。 Revert “fix(urlpattern): fallback to empty string for undefined group values” #25961 $DENO_DIR/depsが$DENO_DIR/remoteへリネーム リモートからダウンロードされた依存関係のグローバルキャッシュとして利用される$DENO_DIR/depsディレクトリが$DENO_DIR/remoteへリネームされました。 DENO_DIRの操作を行うツールやライブラリなどを除いて、基本的にはこの変更による影響は特にないはずです。 BREAKING: rename “deps” remote cache folder to “remote” #25969 deno lsp npm:@types/*を追加するQuick fixのサポート 自前で型定義を持たないnpmパッケージに対して// @deno-types=\"npm:@types/*"を追加するQuick fixが実装されています。(Add @deno-types directive for \"<package>\")...

October 6, 2024

2024/08/12〜2024/08/18の最新情報

Denoの直近の変更について 先週に続けて、おそらく次のDeno v1.46でリリースされると思われる機能がいくつかマージされているため、気になったものについて紹介いたします。 ⚠️正式にDeno v1.46がリリースされる際には、仕様などに変更が入る可能性もあります🙏 deno removeコマンド deno removeという新しいコマンドが追加されています。引数で指定されたパッケージをdeno.jsonのimportsやpackage.jsonなどから削除しつつ、deno.lockを更新してくれます。 $ deno remove @std/testing feat: deno remove (denoland/deno#24952) deno serve --parallel deno serveに--parallelオプションが追加されています。このオプションが指定された場合、deno serveはコア数またはDENO_JOBSで指定された値に基づいて、リクエストを複数のワーカーへ分散してくれるようです。 Deno公式のYoutubeチャンネルで解説動画が公開されています。 Parallelizing Deno Serve feat(serve): Opt-in parallelism for deno serve (denoland/deno#24920) HMRの安定化 DenoのHMR機能が安定化されるようです。 安定化に合わせて、コマンドラインオプションが--unstable-hmrから--watch-hmrにリネームされています。 feat: Rename –unstable-hmr to –watch-hmr (denoland/deno#24975) deno publishのLICENSEチェックについて deno publishコマンドの実行時にLICENSEファイルが存在しない場合は、警告ではなくエラーが発生するように挙動が変更されています。(articles/2024/07/28) また、deno.jsonにlicenseフィールドが追加されており、こちらによってライセンスを定義することもできるようです。 feat(publish): error on missing license file (denoland/deno#25011) feat(config/jsr): add license field (denoland/deno#25056) deno_stdのリリース deno_stdがリリースされています。...

August 18, 2024

2024/05/20〜2024/05/26の最新情報

Fresh v2のアルファバージョンが公開 Fresh v2向けに開発されていたコードがmainブランチに取り込まれています。 major: import Fresh 2.0 code (denoland/fresh#2449) 合わせて、Fresh v2のアルファバージョンとして公開されています。 現状、大きな変更として以下のような内容がありそうです。 FreshのJSRへの公開 preactやesbuildなどのパッケージがnpm:経由で読み込まれるように変更されています (例: www/deno.json) ExpressライクなAPIの採用 (例: www/main.ts) ハンドラーやページコンポーネントなどの定義方法の改善 (例: www/routes/showcase.tsx) 現状、わかっている変更点などを少しずつ以下のページにまとめているため、もし興味がありましたら参照ください。 https://scrapbox.io/uki00a/Fresh_v2 Deno v1.43.6 Deno v1.43.6がリリースされています。 Node.js互換性の改善 JestやVitest, avaなどのテストフレームワーク向けの対応を中心に進められています。 node:worker_threads: Workerを介して転送されるメッセージの中にMessagePortがあった場合に、addListenerなどのメソッドが未定義になってしまう問題が修正されています (vitestなど向けの対応) node:module: avaを動かせるようにするため、findSourceMapの空実装が追加されています。 node:process: process.listeners()に'SIG*'を渡した際に、きちんとリスナー数が返却されるように改善されています。 deno task deno.jsonでnodeModulesDir: true設定されていて かつ node_modulesディレクトリがない場合に、deno taskの実行に失敗してしまう問題が修正されています。 deno serve deno serveコマンドで指定されたエントリポイントでfetchが引数を受け取らない形式で定義されている場合に、TypeErrorが発生する問題が修正されています。 URL.{canParse,parse}の型定義の改善 URL.canParseの第2引数にURLオブジェクトを渡せるように型定義が改善されています。 URL.parseの型定義が追加されています。 deno_stdのリリース deno_stdのリリースが行われています。主要な変更点についてのみ紹介します。 @std/collections@1.0.0-rc.1 @std/collections v1のRCバージョンが公開されています。近いうちにv1がリリースされる可能性がありそうです。 @std/streams@0.224.1 新規APIとしてconcatReadableStreamsが追加されています。...

May 26, 2024

2024/05/13〜2024/05/19の最新情報

Deno v1.43.4 Deno v1.43.4がリリースされました。このリリースはバグ修正やパフォーマンス改善などがメインです。 deno publish expandoプロパティのサポート deno publish(fast check)やdeno docでexpandoプロパティが認識されない問題が修正されています。 --dry-runの改善 deno publish --dry-runの実行時に、以下のケースでエラーが発生するように挙動が改善されています。 バージョン指定がないjsr:specifierが検出された場合 deno.jsonが存在しない場合 Node.js互換性の改善 node:worker_threads メインスレッドとWorkerスレッドでモジュールキャッシュが分離されました。SvelteKitなどのパッケージがこの挙動に依存しているようです。(#23461) node:os homedirの互換性が改善されています。 node:fs EISDIRが発生する状況下でReferenceErrorが発生してしまう問題が修正されています。 Deno API "junction"に関する型定義の追加 Deno.SymlinkOptionsのtypeプロパティの型定義に"junction"が追加されています。 "junction"のサポートは以前に実装されていたものの、型定義が追加されていなかったようです。 ReadableStream ReadableStreamのSymbol.asyncIteratorメソッドが返却する非同期イテレーターに対して.return()の直後に.next()を呼ぶと、.next()が返却したPromiseが.return()が返却したものよりも先に解決される問題が修正されています。 Update ongoing promise in async iterator return() method #22389 その他 DenoがTypeScriptなどのファイルをトランスパイルする際に、トランスパイル後のソースからコメントが削除されてしまう問題が修正されています。 Deno v1.43.5 Deno v1.43.5がリリースされています。 Deno v1.43.4でいくつかのnpmパッケージを使おうとするとエラーが発生していたため、その修正が行われています。(#23862) deno_stdのリリース deno_stdのリリースが行われています。主要な変更点だけ抜粋します。 @std/collections@0.224.2 invertとinvertByが追加されています。オブジェクトのキーと値を入れ替えることができます。 const actual = invert({ "foo": 1, "bar": 2 }); const expected = { "1": "foo", "2": "bar" }; assertEquals(actual, expected); freshのホームページの新デザイン freshのホームページのデザインが更新されています。...

May 19, 2024