Deno v1.31
Deno v1.31がリリースされています。
以下に内容をまとめたため、よろしければそちらを参照いただければと思います。
Deno v1.31.1
Deno v1.31.1がリリースされています。
package.jsonサポートに関する改善
以下のいずれかの手段によって、package.jsonの自動探索を無効化できるようになりました。
- DENO_NO_PACKAGE_JSON環境変数に- 1を設定する
- --no-configまたは- --no-npmを指定する
また、package.jsonが見つかった際のnpmパッケージのダウンロードに関する挙動が改善されています。package.jsonで依存関係として指定されたいずれかのパッケージが利用されるタイミングまでnpmパッケージのダウンロードが遅延されます。
これにより、npmパッケージに依存しないスクリプトを実行する場合は、package.jsonがあってもnpmパッケージがダウンロードされなくなります。
その他には、package.jsonの以下のスキームから始まるspecifierが無視されるように修正されています。
- workspace:
- file:
- git:
- http:
- https:
Deno.serve()でリモートアドレスの取得がサポート
Deno.serve()に渡したhandlerの第2引数にオプションが渡されるようになりました。remoteAddrプロパティ(Deno.NetAddr)からリモートアドレスが取得できます。
Deno.serve({
  handler: (req, { remoteAddr }) => {
    return Response.json(remoteAddr);
  },
});
その他のバグ修正
- リモートモジュールからdata:URLをimportできなくなっていた問題が修正されています。
- 静的に解析ができないdynamic importが複数同時に実行された際に、まれにDenoがパニックする問題が修正されています。
- Import Mapsでローカルモジュールへのマッピングが定義されていた場合、リモートモジュールからそのローカルモジュールをimportできない問題が修正されています。
https://github.com/denoland/deno/releases/tag/v1.31.1
deno_std v0.178.0
deno_std v0.178.0がリリースされました。
std/nodeの削除
Deno v1.31でDeno本体にstd/nodeが組み込まれました。
その影響により、std/nodeが削除されています。
もし、今後もstd/nodeを利用したい場合は、バージョンを明示した上でimportをするとよさそうです。
import { EventEmitter } from "https://deno.land/std@0.177.0/node/events.ts";
std/http/file_server
Deno DeployでもETagが返却されるように挙動が改善されています。
Deno DeployではDENO_DEPLOYMENT_ID環境変数からETagが計算されます。
std/streams/delimiter_stream
DelimiterStreamでdispositionオプションがサポートされました。
このオプションには"suffix"/"prefix"/"discard"のいずれかを指定でき、"suffix"または"prefix"を指定すると、デリミタがチャンクに保持されるようになります。(デフォルトは"discard")
例えば、"suffix"を指定すると、各チャンクの末尾にデリミタが付与されます。
std/crypto/timing_safe_equal
timingSafeEqualでRangeErrorが発生することのある問題が修正されています。
https://github.com/denoland/deno_std/releases/tag/0.178.0
esm.sh v108
esm.shのv108がリリースされています。
Deno v1.31向けに?target=denonextがサポートされています。
これを指定することで、Node.jsの組み込みパッケージが https://deno.land/std/nodeではなくnode:経由で読み込まれるようになります。
将来的にDeno Deployでnode:がサポートされたら、この?target=denonextの挙動がデフォルトに変更される予定のようです。
https://github.com/ije/esm.sh/releases/tag/v108
FreshのTwind v1対応について
現在、Freshでは公式でTwindのv0.16.17向けのプラグインが提供されています。
先週、以下のPRがFreshのmainブランチへマージされました。
このPRでは、Twind v1向けのFreshプラグインが実装されています。
リリース時期などはまだ未定なものの、これが入れば、FreshからTwind v1が利用しやすくなりそうです。