JavaScript/TypeScript実行ランタイム「Deno 2」公開 2024年11月からLTSをリリースへ:新機能、強化された機能は?
Googleの「V8」JavaScriptエンジンで動作するJavaScript/TypeScript実行ランタイム「Deno」の最新版となる「Deno 2」が公開された。
Deno Landは2024年10月9日(米国時間)、Googleの「V8」JavaScriptエンジンで動作するJavaScript/TypeScript実行ランタイム「Deno」の最新版となる「Deno 2」を公開した。
Denoは、JavaScript/TypeScriptのオールインワンツールチェーンとして開発されており、以下のような点を特徴としている。
- ネイティブTypeScriptサポート
- Web標準に基づいた機能(Promises、fetch、ECMAScript Modules〈ESM〉)
- フォーマッター、リンター、型チェック、テストフレームワーク、実行ファイルコンパイルなどの標準ライブラリを提供
- ブラウザと同様、「セキュアバイデフォルト」に基づく設計
Deno Landによると、2024年11月にリリース予定の「Deno v2.1.0」から、LTS(Long Term Support:長期サポート)の提供を開始する計画だ。年に2回、最新の安定バージョンに基づいてLTSをリリースし、6カ月間のサポートを提供するという。
「全てのLTSは無料で利用可能で、MITライセンスが適用される。より安定した環境を必要とする全てのチームが利用できる」と、Deno Landは述べている。
Deno 2の新機能、強化された機能
Nodeやnpmとの互換性の向上
Deno 2はNodeおよびnpmとの後方互換性を備えている。これにより、現在のNodeプロジェクトでDenoを実行できるだけでなく、Denoのオールインワンツールチェーンの一部を段階的に採用することも可能だ。例えば、Nodeプロジェクトをクローンした後にdeno installを使用して依存関係を高速でインストールしたり、Prettierなしでdeno fmtを実行してコードをフォーマットできる。
Deno 2は「package.json」「node_modules」フォルダ、npmワークスペースも認識し、ESMを使用する任意のNodeプロジェクトでDenoを実行できる。構文の微調整が必要な場合は、「deno lint --fix」で修正できる。
さらにDenoでは「npm:」指定子を使用して、package.jsonやnode_modulesを使わずにnpmパッケージを直接インポートすることもできる。これにより、npmとの依存関係を持つプログラムを1ファイルで記述できるようになる。
大規模なプロジェクトの場合は、deno.jsonでnpm:指定子を使用すると、コードからパッケージ名のみでインポートすることもできる。
deno install、deno add、deno removeによる依存関係の管理
依存関係を簡単にインストールしたり管理したりできる3つのサブコマンドが追加された。
- deno install:依存関係をインストールできる。package.jsonがある場合、瞬時にnode_modulesフォルダを作成する。package.jsonを使用しない場合、全ての依存関係はグローバルキャッシュに保存される。Deno Landによるとコールドキャッシュ(初回実行時)にはnpmよりも15%高速で、ホットキャッシュ(キャッシュあり)の実行時はnpmよりも90%高速に動作するという
- deno addとdeno remove:package.jsonやdeno.jsonに対してパッケージを追加/削除するために使用できる
JavaScriptレジストリ「JSR」を導入
Denoでは、オープンソースのJavaScriptパッケージレジストリ「JSR」が利用できる。JSRは、TypeScriptで記述されたESMを公開、利用できるレジストリだ。JSDoc形式のコメントからドキュメントを自動生成したり、npmやnpxのようなシステムと連携して使用したりすることもできる(JSRはTypeScriptを.jsファイルおよび.d.tsファイルに変換する)。
サブコマンドの強化
Deno 2では、以下のようなサブコマンドの機能が強化されている。
- deno fmt:HTML、CSS、YAMLのフォーマットに対応
- deno lint:Node固有のルールとクイックフィックスを追加
- deno test:「node:test」を使用して記述されたテストの実行をサポート
- deno task:package.jsonのスクリプト実行をサポート
- deno doc:HTML出力のデザインが改善され、検索機能が向上
- deno compile:Windowsでのコード署名やアイコンをサポート
- deno serve:複数コアにまたがった並列HTTPサーバの実行をサポート
- deno init:ライブラリやサーバのひな型作成をサポート
- deno jupyter:画像、グラフ、HTMLの出力をサポート
- deno bench:より正確な測定のためにクリティカルセクションをサポート
- deno coverage:HTML形式でのレポート出力に対応
Deno for Enterpriseを発表
Deno Landは同日、高度なサポートを必要とする組織向けに有償サポートを提供する「Deno for Enterprise」も発表した。
「優先サポート、エンジニアへの直接アクセス、応答時間の保証、そして機能リクエストの優先対応を提供する。Netlify、Slack、Deco.cxといった企業と提携し、ユーザーにさらなる価値を提供できるよう支援する」と述べている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Microsoft、「TypeScript 5.7」β版を公開 相対パスの書き換えなど新機能を追加
Microsoftは、オープンソースのプログラミング言語の最新版「TypeScript 5.7」のβ版を公開した。 - JavaScriptランタイム「WinterJS 1.0」リリース、WasmerがRustで開発
Wasmerは、Rustで書かれた高速JavaScriptランタイムの正式版「WinterJS 1.0」を発表した。 - 「Rust」が再浮上、「Python」は過去最大の差をつけて独走 2024年10月版プログラミング言語人気ランキング
プログラミング言語の人気ランキング「TIOBEインデックス」の2024年10月版が公開された。首位の「Python」が3カ月連続で同言語として過去最高のレーティングを更新し、2位の「C++」に過去最大の差をつけた。「Rust」は再び過去最高の13位を占めた。