Denoのnpm workspacesサポートについて
Deno本体にnpm workspacesのサポートを追加するPRがマージされています。おそらくDeno v1.45.0あたりでリリースされる可能性がありそうです。
feat: npm workspace and better Deno workspace support (#24334)
Denoがpackage.json
のworkspaces
フィールドを認識してくれるようです。
現状では、各ワークスペースの依存関係はプロジェクトのルートディレクトリ直下のnode_modules
ディレクトリにまとめてインストールされるようです。今後、この挙動は改善が検討されているようです。
また、以下のようなワイルドカードによる指定についてもまだサポートはされておらず、今後、対応が検討されているようです (#24420)
{
"workspaces": ["packages/*"]
}
Denoのワークスペース機能への変更
この対応に合わせて、Denoのワークスペース機能にも変更が加わっており、deno.json
のworkspaces
キーがworkspace
にリネームされています。
また、このdeno.json
のworkspace
にはpackage.json
を含むディレクトリをワークスペースのメンバーとして指定できるように改善されています。(今まではdeno.json
を含むディレクトリのみがワークスペースのメンバーとしてサポートされていました)
deno_stdのリリース
deno_stdのリリースが行われています。
@std/crypto@1.0.0
@std/crypto@1.0.0がリリースされました。
@std/assert@1.0.0-rc.3
@std/assert@1.0.0-rc.3がリリースされています。
各ファイルの名前からassert_
のプレフィックスが削除されています。例として、@std/assert/assert_equals
は@std/assert/equals
に、@std/assert/assert_rejects
は@std/assert/rejects
へリネームされています。
@std/csv@1.0.0-rc.1
@std/csv@1.0.0-rc.1がリリースされています。
各ファイルの名前からcsv_
プレフィックスが削除されています。例えば、@std/csv/csv_parse_stream
は@std/csv/parse_stream
、@std/csv/csv_stringify_stream
は@std/csv/stringify_stream
にリネームされています。
また、ReadOptions
が非公開APIに変更されています。
@std/expect@1.0.0-rc.1
@std/expect@1.0.0-rc.1がリリースされています。
Immutable.jsのオブジェクトに関するサポートが削除されています。
また、expect().toHaveBeenNthCalledWith()
で0
以下の数値が指定された際に、例外が発生するように挙動が修正されています。
@std/json@1.0.0-rc.2
@std/json@1.0.0-rc.2がリリースされています。
各ファイル名からjson_
プレフィックスが削除されています。例えば、@std/json/json_parse_stream
は@std/json/parse_stream
、@std/json/json_stringify_stream
は@std/json/stringify_stream
にリネームされています。
@std/semver@1.0.0-rc.1
@std/semver@1.0.0-rc.1がリリースされています。
非推奨化されていた以下のAPIが削除されています。
rangeMax()
(greaterThanRange()
への移行が推奨)rangeMin()
(lessThanRange()
への移行が推奨)testRange()
(satisfies()
への移行が推奨)
また、SEMVER_SPEC_VERSION
定数が削除されており、@std/semver/constants
も非公開モジュールに変更されています。
@std/yaml@1.0.0-rc.1
@std/yaml@1.0.0-rc.1がリリースされています。
APIの削除
parse()
APIの以下のオプションが削除されています。
legacy
filename
listener
Type
とSchema
型も非公開になりました。parse()
のschema
オプションには文字列を渡せるのでそちらへの移行が推奨されます。
また、parseAll()
のiterator
引数が削除されています。
リネーム
DumpOptions
がStringifyOptions
にリネームされています。
バグ修正
!!pairsで空のペアがうまく取り扱われない問題が修正されています。
また、<<
がうまく動作しない問題も修正されています。
chore: run test in Node.js (denoland/deno_std#5258)
@deno/shim-denoを使って、deno_std
をNode.jsでテストするための仕組みが導入されています。
現状では、@std/collectionsのみがテストされているようです。この仕組みで動作が確認されているパッケージについては、Node.jsからもJSRを経由することで比較的安定して利用できそうです。
@std/fsをNode.jsでも動作させたいという要望があるようで、それに向けた対応のようです (suggestion(fs): make std/fs
Node-compatible (denoland/deno_std#4313))
LogTape
@logtape/logtapeというロギングライブラリが公開されています。
外部への依存関係を持たないことや、DenoやNode.js, Bun, ブラウザーなどの複数の環境をサポートすることなどが特徴のようです。