Deno 1.32について解説
本記事の目次
Denoが公開したブログ記事によると、Deno 1.32が公開されたようですのでここでどんなものなのかを少し解説しておこうと思います。
変更点の概要
簡単に言うと以下のようなものです。
deno compileでWeb Worker APIと動的インポートの一部をサポートしたよdeno runで.jsなどの拡張子なしで実行するオプションが追加されたよ- 不安定な
WebGPUAPIが削除されたよ 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/frontmatterがstd/frontmatterに
なりました。
つまりはstd/encoding/* が std/* に変更になったわけです
Node.jsとの互換性強化
これに関しては内容がこすぎるので、本家のブログをそのままご覧ください。
TypeScript 5.0に更新
これはそのままです。
自分はTSユーザじゃないのでわかんないですが、多分良いことなんですかね?()
V8 11.2に更新
これもそのままです。
少しバグなどが解決されているのなら素晴らしいですね。
おわりに
Denoのアップデートについて紹介しました。
またアップデートしてない方はdeno upgrade コマンドでアップデートしておきましょう。
スポンサーリンク