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

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

» 2024年10月29日 08時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 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.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。