Deno v1.25.4
Deno v1.25.4がリリースされました。
--node-modules-dir
のサポート
node_modules
ディレクトリの存在に依存したnpmパッケージを動かせるようにするために、--node-modules-dir
オプションが実装されました。
$ deno run -A --unstable --node-modules-dir npm:vite
このオプションを指定すると、pnpmライクなレイアウトでnode_modules
が作られます。
これによって、npm install
なしでViteが動かせるようになったようです。
詳しくは以下を参照いただければと思います。
--reload=
オプションでnpmパッケージがサポート
--reload=npm:
で全npmパッケージの再読込み、--reload=npm:<package>
で指定されたパッケージだけを再読込みができます。
パフォーマンスチューニング
いくつかのパフォーマンスチューニングが実施されています。
例)
- CLIの起動の高速化
console.log()
などで文字列を出力する際のパフォーマンスが3倍近くまで高速化TextEncoder.encodeInto()
が5.4倍近くまで高速化- ファイルシステム関連のAPIの最適化
CLIの起動の高速化については、現在、様々なアイデアが検討されており、詳細については以下を参照いただければと思います。
その他の変更点
- 同一ファイルに対して複数回
deno doc
を実行すると、処理が失敗してしまう問題が修正されています。 - Windows上で
deno compile
を実行したときに、拡張子が非.exe
形式の場合に、それが取り除かれてしまう問題が修正されています。 Deno.env.get
/Deno.env.set
に不正な変数名を指定した際のエラーメッセージが改善されています。
https://github.com/denoland/deno/releases/tag/v1.25.4
deno_std v0.157.0
deno_std v0.157.0がリリースされました。
std/collections/deep_merge.ts
のバグ修正
ネストされたプロパティにおいてdeepMerge()
のreplace
オプションが機能しない問題が修正されています。
std/node
の改善
child_process.spawnSync
が実装されています。
また、FreeBSDでもstd/node
が動作するように修正が行われています。
その他には、以下の改善などが実施されています。
fs.read()
やfs.ReadStream
の互換性の向上net.connect()
が失敗したときに、'error'
⇒'close'
の順にイベントが発火されるように修正されています。process.env
に不正な文字を含む環境変数が指定されたときに、TypeError
を投げるのではなくundefined
を返すように修正されています。- Windows上で
process.on('SIGTERM')
が無視されるように修正されています。
https://github.com/denoland/deno_std/releases/tag/0.157.0
新しいSlackプラットフォームのオープンベータ版がリリース
Slackの新しい開発プラットフォームのオープンベータ版が公開されています。
SDKやCLIなどがDenoで書かれており、Denoを使って開発ができます。
npmパッケージサポートに関するロードマップ
Denoのnpmパッケージサポートに関するロードマップが公開されています。
以下のような機能や改善などが計画されているようです。
- TypeScriptサポート (
deno lsp
との統合や@types
パッケージの自動的な取得など) - ロックファイル(
--lock
)やdeno vendor
/deno info
コマンドなどでのサポート peerDependencies
/optionalDependencies
のサポート
など
packup v0.2.1
packup v0.2.1がリリースされています。
Import Mapsのサポートが実装されています。(--import-map
オプション)