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が利用しやすくなりそうです。