Deno v1.41がリリースされました。
この記事では主な変更点などについて解説します。
Deno API
Deno.FsFile
Deno.FsFile
にisTerminal
とsetRaw
メソッドが追加されています。
Deno.isatty
は非推奨化されているため、Deno.FsFile
やDeno.stdin
などのisTerminal
メソッドへの移行が推奨されます。
Deno.ConnectTlsOptions
Deno.ConnectTlsOptions
にcert
とkey
オプションが追加されています。
これに伴い、Deno.ConnectTlsOptions
のcertChain
とprivateKey
は非推奨化されているため、新しく追加されたこれらへの移行が推奨されます。
破壊的変更
Deno.DatagramConn
とDeno.HttpClient
からrid
プロパティが削除されました。Deno.CreateHttpClientOptions
のcertChain
がcert
、privateKey
がkey
にリネームされました。
パッケージシステム
パッケージシステム (deno publish
)に関してもいくつか改善が行われています。
⚠️
jsr:
に関しては、現在はwaitlistが公開されている段階で、まだ正式には利用できません。
deno lint
deno lint
にno-slow-types
ルールが導入されています (#22430)
このルールはdeno.json
にname
, version
, 及びexports
フィールドが定義されている場合、自動で有効化されるようです。
このルールが有効化されている場合、fast checkが実行されるようです。
型チェックに関する改善
deno publish
の実行時に型チェックが実行されるように変更されています (#22506)
デフォルトではローカルモジュールに対してのみfast checkが行われるようです。--allow-slow-types
を指定するとfast checkではなく通常の型チェックが行われるようです
また、fast checkに関しては、deno lint
などのコマンドと同様にSQLiteをベースにキャッシュの仕組みが導入されており、型チェックがより効率化されています。(#22485)
deno lsp
deno lsp
でjsr:
URL向けにimportの補完が実装されています (#22462)
deno compile
v1.40.5でdeno compile
向けの軽量バイナリであるdenort
が再導入されています。
Deno v1.41ではstrip
コマンドを実行することでdenort
バイナリがさらに軽量化されています。Deno公式のリリースポストによると、今後、deno compile
をする際に特定の機能のみを有効化したカスタムビルドをサポートすることで、さらにバイナリを軽量化することなども検討されているようです。
その他には、deno compile
でdeno.json
のcompilerOptions
などが効かない問題が修正されています。
deno info
deno info
コマンドを実行した際もロックファイル(deno.lock
)が生成されるように挙動が改善されています。
Node.js互換性
影響が大きそうな内容として、process.env
からパーミッションが与えられていない環境変数にアクセスしようとした際に、パーミッションプロンプトが表示されるように挙動が変更されています。
それ以外には、node:test
ではDenoのテストサニタイザーの仕組みが無効化されています。