Deno v1.17.3
Deno v1.17.3がリリースされました。
このリリースでは、バグ修正を中心に実施されています。
変更点:
deno install
で--allow-all
を付与した際に、パーミッションが分解されてスクリプトが作成されないように修正されました。具体的には、今までは
deno install
で--allow-all
を指定すると、下記のようなスクリプトが作成されていました。#!/bin/sh # generated by deno install exec deno run --allow-read --allow-write --allow-net --allow-env --allow-run --allow-ffi --allow-hrtime --quiet --unstable 'http://localhost:3000/bin.ts' "$@"
この形式でスクリプトが作成されてしまうと、将来的に新しい
--allow-*
オプションが導入された際などにスクリプトが意図した通りに動作しなくなってしまうため、この修正が実施されました。
deno bundle
やdeno compile
の--output
オプションにディレクトリを指定できるようになりました。- ディレクトリを指定した際は、バイナリ名は自動で推論されるようです。
deno coverage
コマンドで型チェックが行われなくなりました。- あるモジュールが複数のファイルから
import
されていた場合などに、適切にカバレッジが収集されなくなる問題が修正されました。 Worker
でDeno.memoryUsage()
が使えない問題が修正されました。- lib.deno_core.d.tsのエラーが修正されました。
https://github.com/denoland/deno/releases/tag/v1.17.3
deno_std v0.121.0
deno_std v0.121.0がリリースされました。
変更点:
crypto
: MD4がサポートされました。http/file_server
:--quiet
オプションによりログ出力を無効化できるようになりました。node
: zlibパッケージが実装されました。node/fs
:fs.write()
とfs.writeSync()
が実装されました。node/http
:ClientRequest#abort
が実装されました。また、'response'
イベントが発火されるように修正されました。node/url
:url.format()
の互換性が向上しました。
https://github.com/denoland/deno_std/releases/tag/0.121.0
deno vendor
コマンドの提案について
下記のissueでDenoにdeno vendor
コマンドを追加する提案が行われています。
使い方としては deno run
と同様にエントリポイントを指定します。
$ deno vendor main.ts
こうすることで、main.ts
から再帰的にimport
されているサードパーティモジュールが _vendor
ディレクトリに保存されます。
さらに、リモートモジュールを_vendor
ディレクトリから読み込みために_vendor/import_map.json
も一緒に作成されます。
このImport mapファイルを利用することで、_vendor
ディレクトリに保存されたサードパーティモジュールを読み込むことができます。
$ deno run --import-map=_vendor/import_map.json main.ts
提案の背景としては、下記のような理由があるようです。
- サードパーティモジュールをバージョン管理に含めたい場合がある
- デバッグのため、サードパーティモジュールのソースを一時的に書き換えたい場合がある
https://github.com/denoland/deno/issues/13346
Denoからwindow
変数を削除する提案
下記のissueでDenoからwindow
変数を削除する提案が行われています。
提案の背景としては、多くのWebフレームワークがブラウザの判定のために window
変数を利用していることにあるようです。
その関係で、Denoからそれのフレームワークを利用してサーバサイドレンダリングをしようとした際に、誤ってブラウザと判定されてしまうなどの問題があるとのことです。
この変更は、Deno 2.0で実施される可能性があるかもしれません。
https://github.com/denoland/deno/issues/13367
deployctl v0.5.0
昨年、アーカイブされたdeployctl
の開発が再開されました。
それに合わせて、deployctl
のv0.5.0がリリースされています。
このリリースでは、check
, run
, 及びtypes
サブコマンドが削除されています。
また、新機能としてdeployctl deploy
コマンドが実装されています。
このコマンドを利用することで、スクリプトをDeno Deployへデプロイできます。
元々deployctl
はDeno Deploy向けのローカル開発ツールという位置づけでしたが、今後はDeno Deployとやり取りするためのツールに変わっていくようです。
https://github.com/denoland/deployctl/releases/tag/0.5.0
Deno by example
Deno Land Inc.によりDeno by exampleが公開されました。
このサイトではDenoの使用方法についてまとめられています。
denoland/ga
サーバサイドからGoogle Analyticsへ情報を送信するためのDenoモジュール
Deno.serveHttp
のサポートに加えて、Oak向けのmiddlewareも提供されています
https://github.com/denoland/ga
deno-postgres v0.15.0
deno-postgres v0.15.0がリリースされました。
このリリースでは、名前付きパラメータとUNIXドメインソケットのサポートが追加されています。
https://github.com/denodrivers/postgres/releases/tag/v0.15.0