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オプション)


https://github.com/kt3k/packup/releases/tag/v0.2.1