検索
ニュース

JavaScript/TypeScript実行ランタイム「Deno 2」公開 2024年11月からLTSをリリースへ新機能、強化された機能は?

Googleの「V8」JavaScriptエンジンで動作するJavaScript/TypeScript実行ランタイム「Deno」の最新版となる「Deno 2」が公開された。

Share
Tweet
LINE
Hatena

 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のリリーススケジュール(提供:Deno Land)
Deno 2のリリーススケジュール(提供: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に対してパッケージを追加/削除するために使用できる
deno addの実行例(提供:Deno Land)
deno addの実行例(提供:Deno Land)

JavaScriptレジストリ「JSR」を導入

 Denoでは、オープンソースのJavaScriptパッケージレジストリ「JSR」が利用できる。JSRは、TypeScriptで記述されたESMを公開、利用できるレジストリだ。JSDoc形式のコメントからドキュメントを自動生成したり、npmやnpxのようなシステムと連携して使用したりすることもできる(JSRはTypeScriptを.jsファイルおよび.d.tsファイルに変換する)。

JSRの画面
JSRの画面

サブコマンドの強化

 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.

ページトップに戻る