asdf-vm—— プロジェクトごとに管理されたマルチ言語ランタイムバージョンのコマンドラインツールです#
#article/done/published
#ツール
asdf-vm は、プロジェクトごとに管理されたマルチ言語ランタイムバージョンのコマンドラインツールです。これは、Ruby の rvm や Node の nvm などの他のコマンドラインバージョン管理ツールと似ていますが、拡張可能なプラグインシステムのアーキテクチャによって複数の言語をサポートすることができます。現在のプラグインリストには、さまざまな言語と、プロジェクトごとにランタイムバージョンを管理する必要がある可能性のある Bazel や tflint などのツールが含まれています。
asdf の特徴:
-
Bash、Zsh、Fish をサポートしています。
-
ほぼすべての言語プラットフォームのランタイムバージョン管理をサポートしています。
-
シンプルなプラグインシステムで、新しいランタイムを簡単に拡張できます。
-
1 つの設定ファイルを使用して、グローバルなデフォルト設定を 1 か所に保持します。
-
.tool-versions 設定ファイルを使用して、プロジェクトごとに個別の設定を行います。
インストール#
asdf は、さまざまなプラットフォームとインストール管理ツールをサポートしています。macos と brew を例にします。
- 依存関係のインストール
brew install coreutils curl git
- asdf のインストール
brew install asdf
サポートされているプラグインを表示する#
asdf plugin list all | grep nodejs
使用方法#
nodejs を例にします
プラグインのインストール手順を表示します。異なるプラグインには異なる依存関係があり、個別に設定する必要があります。
- 依存関係のインストール
brew install coreutils
brew install gpg
asdf plugin-add nodejs https://github.com/asdf-vm/asdf-nodejs.git
bash -c '${ASDF_DATA_DIR:=$HOME/.asdf}/plugins/nodejs/bin/import-release-team-keyring'
- すべてのバージョンをリストアップ
asdf list all nodejs
- 指定のバージョンをインストール
asdf install nodejs latest
- インストールされたバージョンを表示
asdf list nodejs
- 使用するバージョンを設定
asdf global nodejs 15.4.0 #グローバル設定、バージョンを$HOME/.tool-versionsに保存
asdf shell nodejs 15.4.0 #セッション設定、バージョンを環境変数ASDF_${LANG}_VERSIONに保存
asdf local nodejs 15.4.0 #ローカル設定、バージョンを$PWD/.tool-versionsに保存
- 現在のバージョンを使用
asdf exec node -v
asdf-direnv の使用#
デフォルトでは、asdf を使用するには asdf exec コマンドを使用する必要があります。これをサポートするには、asdf-direnv プラグインをインストールする必要があります。
まず、direnv をインストールする必要があります。
curl -sfL https://direnv.net/install.sh | bash
echo 'eval "$(direnv hook zsh)"'>>~/.zshrc
asdf-direnv をインストールする
asdf plugin-add direnv
asdf install direnv latest
asdf global direnv `asdf list direnv latest`
mkdir -p ~/.config/direnv/ && touch ~/.config/direnv/direnvrc
echo 'source "$(asdf direnv hook asdf)"' >> ~/.config/direnv/direnvrc
プロジェクトの設定
touch .envrc
echo 'use asdf' >> .envrc
direnv allow
直接使用できます
node -v
- 現在のバージョンを表示
asdf current nodejs
- バージョンを削除
asdf uninstall nodejs 15.4.0
参考#
公式ウェブサイト:https://asdf-vm.com/#/