Deno v1.30.3
Deno v1.30.3がリリースされました。
esm.shやunpkg.comなどからパッケージを読み込むと、deno lsp
が停止してしまう問題が修正されています。
また、console.log()
などでclass
を出力する際のフォーマットも改善されています。
class User {}
console.info(User);
// v1.30.3: `[Class: User]`
// v1.30.2: `[Function: User]`
https://github.com/denoland/deno/releases/tag/v1.30.3
deno_std v0.177.0
deno_std v0.177.0がリリースされました。
std/encoding/csv
- BOMのサポート
stringify()
にbom
オプションを指定できるようになりました。
true
を指定すると、出力されるCSVの先頭にBOMが付与されます。
また、trimLeadingSpace
オプションが未設定の場合でもparse()
がBOMを認識するように改善されています。
std/node
以下のバグが修正されています。
node:child_process
:execFile()
にutil.promisify()
がうまく適用されない問題が修正されています。node:process
: 標準入力にファイルがリダイレクトされている場合に、ファイルの末尾に達してもprocess.stdin
からnull
が返却されない問題が修正されています。
std/semver
semver.increment()
のmetadata
引数に空文字列が渡された際に、ビルドメタデータが未設定にならない問題が修正されています。
import * as semver from "https://deno.land/std@0.177.0/semver/mod.ts";
const v = semver.increment(
"1.2.3+1", // version
"major", // release
undefined, // options
undefined, // identifier
"", // metadata
);
assert(v === "2.0.0");
https://github.com/denoland/deno_std/releases/tag/0.177.0
Deno 2.0 マイルストーン
Deno v2.0のマイルストーンが公開されています。
ここでは直近で追加されたいくつかのissueについて紹介します。
リモートモジュールのメタデータ管理の効率化
Denoはリモートモジュールをダウンロードする際に、ソースファイルに加えて対象ファイルに関するメタデータをJSONファイルに保存します。
Denoが実際にリモートモジュールを実行する際は、背後ではこれらの2つのファイルの読み込みが行われています。
以下のissueでは、これら2つのファイルをひとつにまとめることが提案されています。
Consider storing remote file cache metadata in same file as text #17707
これにより、モジュールの読み込みを効率化できることが期待されるようです。
deno info --json
から"emit"
と"map"
の削除
上記のissueではdeno info --json
から以下のフィールドを削除することが提案されています。
フィールド | 背景 |
---|---|
"map" | 現状、このフィールドには常にnull が設定されるため |
"emit" | このフィールドはCLI内部の挙動に依存しており、バージョンが上がると挙動が変わる可能性があります。また、もしトランスパイル後のソースを読むたい場合はdeno_emitの使用が推奨されます。 |
静的に解析可能なdynamic importの取り扱いに関する変更
以下のissueで、静的に解析可能なdynamic importに関する取り扱いを変更することが提案されています。
Do not permission prompt for statically analyzable dynamic imports #17697
現状、dynamic import経由で読み込まれるモジュールはdeno info
の出力には含まれまず、またそれがリモートモジュールであれば--allow-net
の指定も要求されます。
今後は、dynamic importでモジュールが読み込まれた場合であっても、それが静的解析可能であればdeno info
の出力に含むようにすることが検討されているようです。
また、そのようなモジュールの読み込みに対しては、--allow-net
オプションの指定も不要にすることも考慮されているようです。
deno bundle
コマンドの非推奨化
deno bundle
コマンドを非推奨化するPRが作成されています。
今後、deno bundle
コマンドを実行した際は、以下への移行を促す警告メッセージが表示されるようです。
今のところ、この変更はDeno v1.31でリリースされることが検討されているようです。
Aurae
コンテナやVM、プロセスなどの実行を管理する分散システムランタイム
AuraeScriptというTypeScriptベースのスクリプト言語を搭載しており、内部ではdeno_coreが使用されているようです。
https://discord.com/channels/684898665143206084/712010403302866974/1072883570357571604