Deno 1.32について解説
本記事の目次
Denoが公開したブログ記事によると、Deno 1.32が公開されたようですのでここでどんなものなのかを少し解説しておこうと思います。
変更点の概要
簡単に言うと以下のようなものです。
deno compile
でWeb Worker APIと動的インポートの一部をサポートしたよdeno run
で.js
などの拡張子なしで実行するオプションが追加されたよ- 不安定な
WebGPU
APIが削除されたよ URLSearchParams.size()
がサポートされたよ- 標準ライブラリの構造を変更したよ
- Node.jsとの互換性を強化したよ
- TypeScript 5.0に更新したよ
- V8 11.2に更新したよ
また、この他にもいくつかあるので、詳しくはDenoが公開したブログ記事をご覧ください。
deno compile
でのWeb Worker APIと動的インポートの一部サポート
これまでDenoでシングルバイナリに変換する時、Web WorkerやDynamic import(await import()
)などの構文は利用できませんでしたが、
文字列リテラルのみを利用した場合使えるようになります。('xxx(hello.js')
はサポートされ、xxx(scriptPath)
がサポートされない)
deno run
で拡張子なしで実行するオプション追加
@bash
deno run --ext=js main
みたいにすることで拡張子なしで実行できます。
これができることで例えば
@js
#!/usr/bin/env -S deno run --ext=js
console.log("Hello!");
を
@bash
./main
のように実行することができるようになります。
不安定なWebGPU
APIの削除
WebGPUに関するunstableなAPIが削除されました。
ここに関しては専門じゃないのでなんとも言えませんが、そういう系のプロジェクトを扱っている方は新しいAPIについて知っておいたほうがいいかもしれません。
URLSearchParams.size()
のサポート
色々検索をしてみましたが、まだ議論中のものなのでしょうか?
URLSearchParamsはMapのためlength
属性が獲得できず、そのため特有のゲッターを追加してほしいみたいな内容でしたが、追加されているようには見えませんでしたし、Mozillaにも載っていませんでしたし、テストしてみてもundefined
でした。
なので、これはまあすぐ削除されるかもしれないので使わない方が良いです。
標準ライブラリの構造変更
std/encoding/csv
がstd/csv
にstd/encoding/yaml
がstd/yaml
にstd/encoding/toml
がstd/toml
にstd/encoding/json
がstd/json
にstd/encoding/jsonc
がstd/jsonc
にstd/encoding/front
matterがstd/front
matter
に
なりました。
つまりはstd/encoding/*
が std/*
に変更になったわけです
Node.jsとの互換性強化
これに関しては内容がこすぎるので、本家のブログをそのままご覧ください。
TypeScript 5.0に更新
これはそのままです。
自分はTSユーザじゃないのでわかんないですが、多分良いことなんですかね?()
V8 11.2に更新
これもそのままです。
少しバグなどが解決されているのなら素晴らしいですね。
おわりに
Denoのアップデートについて紹介しました。
またアップデートしてない方はdeno upgrade
コマンドでアップデートしておきましょう。
スポンサーリンク
