ホームページ ウェブフロントエンド jsチュートリアル JavaScript プロジェクト環境管理のための misse と asdf

JavaScript プロジェクト環境管理のための misse と asdf

Jan 04, 2025 am 07:35 AM

ロザリオ・デ・キアラ作✏️

mise と asdf は、開発者が複数のバージョンのプログラミング言語と環境を管理できるように設計されたツールです。どちらのツールも、ツールのバージョン間の管理と切り替えを容易にすることで、多言語開発を簡素化することを目的としています。これは、異なるプログラミング言語やフレームワークを使用する場合に共通の課題となります。

空自とは何ですか?

asdf は、「シミング」と呼ばれる技術を使用して、Python、Node.js、Ruby などのツールの異なるバージョンを切り替える人気のあるバージョン マネージャーです。特定のバージョンへの一時パスを作成し、環境を変更して、ツールの正しいバージョンがさまざまなプロジェクトで使用されるようにします。ただし、この方法では、これらの shim の動作によりパフォーマンスのオーバーヘッドが発生する可能性があります。

ミセって何?

ミセとは、テーブルを準備する方法を意味するフランス語の表現「ミザン・プレイス」の略で、シムへの依存を取り除くことで航空自衛隊を改善することを目指しています。

Rust で書かれた mise は、PATH 環境変数を直接変更し、実行時間を短縮します。 asdf プラグインとシームレスに連携するように設計されていますが、コマンドのあいまい一致や、同じツールの複数のバージョンを同時にインストールする機能などの機能も提供します。

ASDF を始める

asdf をインストールするには、スタート ガイドに従って、システムに応じて前提条件をインストールします。環境の準備ができたら、ホーム ディレクトリに公式リポジトリを git clone できます。

 $ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

上記のコマンドは、インストールを完了するために必要なすべてのスクリプトと構成ファイルを .asdf ディレクトリにクローン作成します。

上記のインストール ガイドの次のステップは、インストール スクリプトを実行することです。繰り返しますが、この手順は環境とオペレーティング システムの詳細によって異なるため、ガイドに従ってシェル初期化スクリプト (.bashrc、.bash_profile など) に適切なスクリプト呼び出しを追加してください。このプロセスの終了後、通常はシェルを再起動すると、asdf をコマンドとして実行できるようになります。

mise vs. asdf for JavaScript project environment management

この時点では、asdf が実行されていますが、それを使って何か便利なものを作るには、開発しようとしているプロジェクト (例: Node.js、パイソンなど)。

この目的のために、Node.js のプラグインをインストールします。 asdf では、プラグインは、フレームワークまたはライブラリのさまざまなバージョンを操作できるようにするコードの一部です。この場合、Node.js プラグインをインストールしてから、asdf がそれらをどのように処理するかを理解するために、Node.js のいくつかのバージョンをインストールします。

次のコードを使用して Node.js プラグインをインストールします。

 $ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

プラグインのソース コードを含む git リポジトリを明示的に指定する必要があることに注意してください。プラグインを配置したら、次のコマンドを使用して、それを使用して特定のバージョンの Node.js をインストールできます。

 $ asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

この例では、この記事の執筆時点では 23.1.0 である最新バージョンをインストールします。次のコマンドを使用して、特定のバージョンの Node.js をインストールします:

 $ asdf install nodejs latest
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

システムで両方が利用可能であることを確認するには、次のコマンドを使用します:

 $ asdf install nodejs 20.0.0
ログイン後にコピー
ログイン後にコピー

使用する Node.js のバージョンを選択するには、次のコマンドを使用します。

 $ asdf shim-versions node
 nodejs 20.0.0
 nodejs 23.1.0
ログイン後にコピー
ログイン後にコピー

asdf は、次の形式で [.tool-versions](https://asdf-vm.com/manage/configuration.html#tool-versions) という名前のファイルを設定することによって、ツールのさまざまなバージョンを処理します。

 $ asdf global nodejs 20.0.0
 $ node --version
 v20.0.0
 $ asdf global nodejs 23.1.0
 $ node --version
 v23.1.0
ログイン後にコピー

ファイル .tool-versions は、上記の Node.js バージョン 20.0.0 で行ったように、使用する予定のバージョンを指定するコマンドを使用して asdf によって自動的に操作されます。パラメータのグローバル、シェル、およびローカルに応じて、環境にさまざまな影響を与えるツールのバージョンを特定の .tool-versions ファイルに追加します。以下に、Node.js バージョン 20.0.0 をインストールする場合のパラメーターの影響について説明します。

  • asdf global nodejs 20.0.0: この場合、別の方法で指定されていない限り、システム全体でこの特定のバージョンを使用する予定です
  • asdf シェル nodejs 20.0.0: これは、現在のシェル セッションのみにこのバージョンの Node.js を使用したい場合です
  • asdf local nodejs 20.0.0: このコマンドのフレーバーは、コマンドが実行されるディレクトリでのみ有効な Node.js のバージョンを指定する .tool-versions を作成します。これは、プロジェクトの異なるサブディレクトリに同じツールの異なるバージョンを配置できることを意味します。これは非常に優れた機能で、複雑なプロジェクトに関連します。次の図では、これが環境にどのような影響を与えるかを示しています。
ruby 2.5.3
nodejs 10.15.0
ログイン後にコピー

最初のコマンドでは、ホーム ディレクトリでバージョン 20.0.0 を使用するように asdf に指示し、ノード --version でバージョンを確認します。次に、test という名前のディレクトリを作成します。テストでは、ノードに別のバージョン (バージョン 23.1.0) を指定して asdf を実行します。また、ノード --version により、バージョン 23.1.0 を使用していることが確認されます。最後に、ホーム ディレクトリに戻ると、ローカルの Node.js のバージョンがまだ 20.0.0 であることがわかります。

シムとは何ですか?

システム上で asdf が動作するようになったので、シムとは何か、そして asdf を使用するときにそれが重要である理由を学びましょう。

コンピューター サイエンスにおいて、シムは、異なるバージョン間でコマンド (ライブラリ メソッドの呼び出しなど) を透過的にリダイレクトする方法です。ここで重要なのは「透明」という言葉です。 asdf の全体的な考え方は、ユーザーが、たとえば、node、Python、またはその他のパッケージを作成するときに、実際に呼び出される内容を透過的な方法で変更できるようにすることです。ユーザーは「node」または「python」と入力し続けますが、asdf は、.tool-versions ファイルに記述されている内容に応じて、正しいバージョンへの別のパス (shim) を設定します。

プラグインは、asdf が特定のコマンドの適切なバージョンを選択できるようにする、単なる賢いシェル スクリプトのセットです (例: Node.js プラグインを確認する)。 bin ディレクトリ内のコマンドは、Node.js プラグインを使用して新しいバージョンをインストールしたり、使用する特定のバージョンを選択したりするときに asdf が実行する必要があるものを実装するだけです。

ミセをはじめる

Git リポジトリのクローンを作成する必要がないため、mise のインストール プロセスは asdf に比べて簡単です。

 $ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

アクティベーション ガイドは非常にシンプルです。上記のコマンドを実行してシェルを再起動すると、以下を実行できるようになります:

 $ asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

これにより、インストールのステータスが表示されます。 misse をインストールしたら、[mise activate](https://mise.jdx.dev/cli/activate.html) コマンドを使用してアクティブ化する必要がある場合があります。

この時点で、mise コマンドは最も一般的なタスク、つまり特定のバージョンのフレームワークをインストールしてシステムでグローバルに使用できるようにするために使用できるようになります。

 $ asdf install nodejs latest
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ノードの実行可能ファイルがシステムにない状況から開始します。 misse コマンドを使用して、特定のノードのバージョンをグローバルにインストールし、使用できるようにします。現在インストールされているツールのバージョンを確認するには、次のコマンドを使用できます:

 $ asdf install nodejs 20.0.0
ログイン後にコピー
ログイン後にコピー

上記のコマンドでは、上のボックスにインストールされているノード ツールと Python のバージョンを確認できます。

空自と三瀬の比較

mise フレームワークは、同じ asdf メカニズムを使用して、システム全体および特定のディレクトリ内のツールのさまざまな構成を処理します。 asdf の .tool-versions ファイルの役割は、構成を収集する mise.toml ファイルによって実行されます。

mise には、asdf プラグインに似た概念はありません。asdf では、ツールの特定のバージョン (たとえば、node@20.0.0) のインストールが 2 段階のプロセスであるため、これは良いことです (最初に Node.js プラグインをインストールしてから、特定のバージョンの Node をインストールします)。 misse では、必要なツールの単一バージョンに対処するだけで、mise が舞台裏でツールの構成にかかる面倒な作業をすべて処理します。次の 2 つのボックスでは、asdf コマンドがどのように mise に変換されるかを確認できます。

 $ asdf shim-versions node
 nodejs 20.0.0
 nodejs 23.1.0
ログイン後にコピー
ログイン後にコピー

これはすべて、プラグインとランタイムをインストールし、バージョンを設定する 1 つのステップで実行できます。

 $ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

asdf の一般的な冗長さは、mise の糖衣構文によってエレガントに解決されます。それでも、mise はさまざまなバージョンの処理方法が異なり、エクスペリエンス全体に広範な影響を与えます。次の図では、asdf が動作している環境でノード コマンドを実行すると何が起こるかを示しています。

mise vs. asdf for JavaScript project environment management

このプロセスは、コマンドの実行に必要な時間に影響します。一方、mise は、別のメカニズムである PATH 変数を活用することで、構成に応じて適切なツールを選択するという同じ問題を解決します。PATH 変数は、コマンドを実行するためのオペレーティング システムのネイティブ メカニズムです。

パフォーマンスは、mise を使用せずにコマンド (ノードなど) を実行した場合と同じです。興味深いことに、mise は asdf に関して動作が異なります。mise はディレクトリのすべての変更を追跡するため、ユーザーがディレクトリを変更すると、mise は内部フックを呼び出して PATH 変数を更新します。このフックは Rust で書かれており、その場で PATH 変数を設定して環境を設定するため、非常に効率的です。

結論

asdf と misse はどちらも、それぞれ独自のメカニズムを備えた複数のツール バージョンを効果的に管理します。 misse は PATH フック メカニズムのおかげで効率に優れています。一方、asdf はより広範なツール互換性を提供しますが、シム メカニズムによるパフォーマンスのトレードオフがあります。 misse は asdf プラグインと互換性があるため、ツール間のギャップを埋めることができます。

速度を優先するか、選択を優先するかにかかわらず、どちらのツールも開発者が環境を簡単に管理できるようにし、さまざまなパッケージやツールの繁栄したエコシステムを提供します。


LogRocket の最新のエラー追跡を数分でセットアップできます。

  1. https://logrocket.com/signup/ にアクセスしてアプリ ID を取得します。
  2. NPM またはスクリプト タグを介して LogRocket をインストールします。 LogRocket.init() はサーバー側ではなくクライアント側で呼び出す必要があります。

NPM:

 $ asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

スクリプトタグ:

 $ asdf install nodejs latest
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

3.(オプション) スタックとのより深い統合のためのプラグインをインストールします:

  • Redux ミドルウェア
  • ngrx ミドルウェア
  • Vuex プラグイン

今すぐ始めましょう。

以上がJavaScript プロジェクト環境管理のための misse と asdfの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? Apr 04, 2025 pm 02:42 PM

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

javascriptの分解:それが何をするのか、なぜそれが重要なのか javascriptの分解:それが何をするのか、なぜそれが重要なのか Apr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

誰がより多くのPythonまたはJavaScriptを支払われますか? 誰がより多くのPythonまたはJavaScriptを支払われますか? Apr 04, 2025 am 12:09 AM

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? Apr 04, 2025 pm 05:09 PM

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

JavaScriptは学ぶのが難しいですか? JavaScriptは学ぶのが難しいですか? Apr 03, 2025 am 12:20 AM

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は?
または:
Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は? または: Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Apr 04, 2025 pm 05:36 PM

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptの進化:現在の傾向と将来の見通し JavaScriptの進化:現在の傾向と将来の見通し Apr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Apr 04, 2025 pm 05:12 PM

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...

See all articles