Deno v2.2.10
Deno v2.2.10がリリースされています。
JavaScriptでのExplicit resource managementのサポート
JavaScript向けにExplicit Resource Managementのサポートが追加されました (#28119)
今まで、Explicit Resource ManagementはTypeScriptでのみ利用可能でしたが、V8におけるサポートに伴い、JavaScriptでも利用できるよう改善されました。
// main.js
class Disposable {
[Symbol.dispose]() {
console.info("Disposed!");
}
}
{
using _ = new Disposable();
} // => "Disposed!"
vsockのサポート
以前に紹介したvsockのサポートが正式に導入されました (#28725)
Node.js互換性の改善
node:stream
- 互換性の大きな改善
Node.jsにおけるnode:stream
のソースコードをもとに、Denoにおける実装を自動生成する仕組み (ext/node/update_node_stream.ts) が導入されています (#28855)
これによって、互換性の大きな改善が期待されそうです。
node:test
- describe()
/suite()
のサポート
describe()
とsuite()
が実装されています (#28847)
import assert from "node:assert/strict";
import { describe, it } from "node:test";
describe("sum", () => {
it("returns sum of numbers", () => {
assert.equal(sum(1, 2, 3), 6)
});
});
node:querystring
- parse()
の互換性の改善
parse()
のdecodeURIComponent()
オプションで指定した関数で例外が発生した際に、unescape()
へフォールバックするよう修正されています (#28838)
deno install
- v2.2.9から発生していたリグレッションの修正
Deno v2.2.9からnode_modules
に依存したプロジェクトの起動に失敗することがある問題が修正されました (#28893)
Deno v2.2.11
Deno v2.2.11がリリースされています。
Node.js互換性の改善
npmパッケージの解決が高速化
パフォーマンス改善のため、npmパッケージ解決時のファイルシステムの読み込みを削減する対応が実施されました (#28938)
CommonJS/ESMモジュールの検出の改善
Top-level awaitを使用している.js
ファイルにおいてエラーが発生する問題が修正されています (#28810)
元々、Top-level awaitを使用した.js
ファイルはCommonJS形式として取り扱われていたことが原因のようです。ESM形式で認識されるよう改善されています。
"unstable": ["npm-patch"]
に関するバグの修正
npmパッケージに対するパッチ ("unstable": ["npm-patch"]
)を利用する際に、パッチ対象のパッケージをdist-tagを使用して参照しようとするとプロセスがパニックする問題が修正されています (#28900)
node:test
: TestContext.assert
の追加
TestContext
にassert
プロパティーが追加されています (#28904)
import { test } from "node:test";
test("sum", (t) => {
t.assert.strictequal(sum(1, 2, 3), 6)
});
deno install -g
- DENO_INSTALL_ROOT
の取り扱いの改善
DENO_INSTALL_ROOT
環境変数に/bin
で終わるパスが指定された場合、その直下にさらに/bin
ディレクトリを作成しないよう改善されています (#26446)
Deno v2.3.0-rc.0
Deno v2.3.0のRCバージョンの公開が開始されています (#28955)
RCバージョンについては以下のコマンドで導入できます:
$ deno upgrade rc
変更点
deno install
に--no-config
を指定した際の挙動の修正
deno install
コマンドに--no-config
が指定された際にプロセスがパニックする問題が修正されています (#28965)
以下のエラーが発生するよう挙動が改善されています:
error: deno install can't be used to add packages if `--no-config` is passed.
hint: to cache the packages without adding to a config, pass the `--entrypoint` flag
dax v0.43.0
dax v0.43.0がリリースされています。
破壊的変更
daxにおけるdeno
コマンドの取り扱いが変更されています。daxはdeno
コマンドが検出された際にDeno.execPath()
によって実行可能ファイルのパスを調べ、サブプロセスとして起動していました。この挙動はdeno compile
によって実行可能ファイルを生成した際などに意図せぬ振る舞いをしてしまうことがあったため、このdeno
コマンドを特別扱いする挙動が削除されています。
また、$.cd
についても削除が行われています。
もしこれらの機能に依存している場合は、リリースノートで移行方法が解説されています。
新機能
Deno v2.2.9におけるdeno task
コマンドと同様に、daxでも~
の展開がサポートされています。
また、$.rawArg
という新規APIが追加されています。これは引数を埋め込む際のエスケープを無効化したい場合に利用することが想定されています。