BT

InfoQ ホームページ ニュース Denoは、自己完結型のスタンドアロンバイナリにコンパイルできるようになった

Denoは、自己完結型のスタンドアロンバイナリにコンパイルできるようになった

ブックマーク

原文(投稿日:2021/02/01)へのリンク

Deno 1.6は、Denoプロジェクトのスタンドアロン実行可能ファイルへのコンパイルを導入した。そのサイズはDeno 1.7でさらに小さくなった(最大60%)。Denoには専用の言語サーバがある。コードエディタでのDeno開発者のエクスペリエンスを向上させることを目的としたものである。Denoは、データURLのサポートを追加し、コンピューターで生成されたコードを実行できるようになった。

Deno 1.6のリリースノートでは、新しいコンパイルツールチェーンについて次のように説明している。

deno compileはDenoに対して、nexeあるいはpkgがNodeに対して行うことと同じことを行う。つまり、JavaScriptあるいはTypeScriptソースコードからスタンドアロンの自己完結型バイナリを作成する。これは、Deno課題追跡システムで最も票を集めた課題である。

Denoアプリケーションを自己完結型のバイナリにコンパイルすると、NodeまたはNectarjs JavaScriptネイティブコンパイラと同じユースケースを扱える。たとえば、一部の開発者は、クローズドソースの商用/デモ/試用版のアプリケーションを作成したい場合がある。アプリケーションを一連のプラットフォームに対する単一のファイルとしてデプロイできる。あるいは、移植性の目的で実行可能ファイル内にアセットを組み込める。

リリースノートには、新しいコンパイル機能の使用例が記載されている。

Denoコンパイラは、コンパイルするコンピュータのアーキテクチャに関係なく、サポートされている任意のアーキテクチャ(Windows x64、MacOS x64、Linux x64)にコンパイルできる。これは、LinuxマシンがWindows用あるいはMacOS用の実行可能ファイルを作成できることを意味する。--liteオプション(Deno 1.7で使用可能)は、40~60%小さいバイナリを生成する。deno compileは、組み込みのCA証明書、カスタムV8フラグ、ロックダウンされたDeno権限、事前設定されたコマンドライン引数を持つバイナリも作成できる。ただし、いくつかの制限がある。Denoコンパイルは、Webワーカー動的インポートもサポートしない。

Deno 1.6では新たにlspサブコマンドが導入された。Language Server Protocol(LSP)を実装している言語サーバを起動するものである。LSPは、コードエディターあるいは統合開発環境と言語サーバとの間で使用されるプロトコルを定義している。これによって、コード補完、定義元へのジャンプ、リンティングなどの便利な機能が提供される。現在、deno lspは、コード補完、ホバーによるヒント、定義元へのジャンプ、参照への移動アクションを実装しているDeno VSCode拡張機能は、まだdeno lspをサポートしていない。

Deno 1.7では、さらにデータURLをサポートしている。次のデータURL"data:application/typescript;base64,ZXhwb3J0IGNvbnN0IGEgPSAiYSI7CgpleHBvcnQgZW51bSBBIHsKICBBLAogIEIsCiAgQywKfQo="は、次のTypeScriptソースコードをbase64でエンコードする。

export  const a =  "a";

export  enum  A  {
  A,
  B,
  C,
}

データURLにエンコードされたコードは、通常のインポート構文でインポートできる(import * as a from "data:application/typescript;base64,...")。この機能は、動的に生成されたコンテンツを実行する場合に特に便利である。類似の機能を使用して、Svelteフロントエンドフレームワークのインタラクティブなプレイグラウンドを実装できる。プレイグラウンドのユーザがテキスト領域に入力したソースコードは、前処理され、バンドルされ、URLオブジェクトを介してインポートされ、実行されて、プレビューペインに表示される。データURLはWebワーカーでも使用できる。

Deno 1.61.7のリリースノートには、リリースの一部として追加されたマイナー機能が詳しく説明されている。Denoは、MITライセンスの下で利用可能なオープンソースソフトウェアである。コントリビューションはDenoプロジェクトを通じて奨励されており、Denoコントリビューションガイドラインに従う必要がある。

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

.NETエコシステムの紹介

David Pine 2019年11月7日 午後7時48分

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。