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

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/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