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