2026/04/27〜2025/05/03の最新情報

直近のDenoの変更について 直近でDenoのmainブランチにいくつかの機能がマージされているため紹介します。 ⚠️ これらの機能はまだ正式にはリリースされていないため、今後、使用方法などが変更される可能性があります deno compile - フレームワークの検出機能 deno compileコマンドにフレームワークの検出機能が追加されています: feat: framework detection for deno compile #33164 deno compileの引数としてディレクトリが指定された場合、指定されたディレクトリ内に存在する設定ファイル (例: next.config.js)などに基づいてDenoが自動的にプロジェクトで使用されているフレームワークを検出し、必要に応じて該当フレームワーク向けのビルドコマンドを実行した上で、最終的に実行可能ファイルを作成してくれます。 現状、以下のフレームワークがサポートされているようです: Next.js Fresh Astro Nuxt SvelteKit Remix SolidStart TanStack Start Vite (SSR) 先週に紹介したdeno desktopコマンドにおいてフレームワークの検出機能の導入が検討されており、その一環の対応であると思われます。 catalog:プロトコル カタログ機能を実装するPRがマージされています: feat(npm): add catalog: protocol for centralized dependency versions in workspaces #32947 ワークスペースのルートにおけるdeno.jsonまたはpackage.jsonにおいてcatalogもしくはcatalogsプロパティーを定義しておくことで、pnpmなどと同様にワークスペースメンバーの各package.jsonにおいてカタログで定義されたパッケージのバージョンをcatalog:形式で参照することができます。 deno transpile 昨年に提案されていたdeno transpileコマンドが実装されています: feat: add deno transpile subcommand #32691 TypeScriptファイルをJavaScriptファイルにトランスパイルするためのコマンドで、--declarationオプションを指定することで.d.tsファイルの生成も行えるようです。 現在はクローズされていますが、以前にDenoからnpmパッケージの公開を行えるようにするためのdeno publish –npmの実装が進められており、deno transpileコマンドの追加はその一環である可能性もありそうです。...

May 3, 2026

2021/05/16〜2022/05/22の最新情報

Deno v1.22 Deno v1.22がリリースされました。 変更点については以下の記事にまとめたため、詳しくはこちらを参照いただければと思います。 Deno v1.22 deno_std v0.140.0 deno_std v0.140.0がリリースされました。 http serve関数などにonListenオプションが追加されています。 このオプションに関数を設定しておくと、サーバ起動時にそれが呼ばれます。 import { serve } from "https://deno.land/std@0.140.0/http/server.ts"; serve(() => Response.json({ message: "hello" }), { onListen({ port }) { console.log(`Listening on port ${port}`); }, }); collections/deep_merge deepMerge関数で、循環参照のあるオブジェクトなどで無限ループが発生する問題が修正されています。 testing/asserts assertRejects()に渡した関数が同期的に例外を投げた場合に成功と扱われてしまう問題が修正されました。 await assertRejects(() => { throw new Error("foo"); }); // => rejectされたPromiseが返されていないため、エラー https://github.com/denoland/deno_std/releases/tag/0.140.0 SQLバイディング Deno本体でSQLバインディングを公開するPRが作成されています。 experiment(runtime): expose SQLite bindings (#14627) まだ実際にリリースされるかどうかは不明ですが、今のところ、下記のようにしてクエリを発行できる想定のようです。...

May 22, 2022

2021/02/21〜2022/02/27の最新情報

Deno v1.19.1 Deno v1.19.1がリリースされました。 新機能としてDeno.dlopenでstatic変数の参照がサポートされています。 Deno.ForeignStatic その他にも、deno compileで--import-mapオプションがうまく動かなくなっていた問題が修正されています。 https://github.com/denoland/deno/releases/tag/v1.19.1 deno_std v0.127.0 deno_std v0.127.0がリリースされました。 dotenvの追加 deno-dotenvモジュールがdeno_stdにマージされました。 マイグレーション手順も公開されているので、もしdeno-dotenvを利用されていた場合は参考にするとよさそうです。 async/abortableの追加 Promiseをキャンセルできるようにするためのユーティリティが追加されています。 import { abortable } from "https://deno.land/std@0.127.0/async/abortable.ts"; import { delay } from "https://deno.land/std@0.127.0/async/delay.ts"; const controller = new AbortController(); const promise = delay(5000); setTimeout(() => controller.abort(), 2000); await abortable(promise, controller.signal); // => AbortError node fs: fs.realpath.nativeが追加されました。 tls: tls.createServerの基本的なサポートが追加されました。 その他 http/file_server: serveDir関数が追加されました。 testing/aserts: assertAlmostEqualsが追加されました。 https://github.com/denoland/deno_std/releases/tag/0.127.0 deno.json(c)でのImport Mapサポートについて deno....

February 27, 2022

2021/12/06〜2021/12/12の最新情報

Deno.spawnDenoを追加する提案 以下のissueでDeno.spawnDenoというAPIの追加が提案されています https://github.com/denoland/deno/issues/13041 背景として、まずdenoland/deno#11016でDeno.runとは異なる新しいサブプロセスAPIが提案されました。 このissueをベースに以下のようなAPIを追加するPRが作成されていますが、まだマージはされていないようです。 // 高レベルAPI const cmd = Deno.Command(executable, { args }); const status = await cmd.status(); // 低レベルAPI const cmd = Deno.Command(executable, { args }); const child = cmd.spawn({ stdin: "piped" }); const writer = child.writer.getWriter(); await writer.write(buffer); この変更は今のところv1.17のマイルストーンに入っているため、次のリリースに含まれる可能性がありそうです。 そして、今回提案されているDeno.spawnDenoは、Node.jsにおけるchild_process.forkに相当する機能のようで、上記のAPIをベースにサンドボックス化されたDenoのサブプロセスを起動する機能のようです。 起動する際にWorkerのdeno.permissionsと同様にパーミッションなどの指定をサポートすることが想定されています。 またこの提案に合わせて --no-permission-requestオプションの追加も提案されています。 このオプションが指定された際はDeno.permissions.requestを無効化し、Deno.spawnDeno経由で起動されたプロセスがパーミッションのエスカレーションをできないようにすることを目的としているようです。 https://github.com/denoland/deno/issues/13041 サブステップAPIの安定化について Deno v1.15で導入されたサブステップAPIの安定化が提案されています。 Deno v1.18での安定化が検討されているようです。 Deno.test("nested test case", async (t) => { const success = await t.step("step 1", async (t) => { const success = await t....

December 12, 2021