使用 asdf 来管理 Node.js 的版本

从前有一个地方.

尽管我曾在很久以前写过这篇文章,但最终我现在不再使用anyenv,而是使用asdf。

 

嗯,换乘的原因是因为现在的项目中使用了asdf,所以我希望统一使用它,这就是我的动机。而且我发现用起来感觉不错,所以我与大家分享一下。

使用asdf的好处

和安装anyenv一样,你不需要安装nodenv来安装node,只需要安装asdf,就能安装node了(当然也可以进行版本管理)。

可以使用 .tool-versions 文件来共享所有工具的版本。
现在你可以使用一个文件来管理 .nvmrc、.node-versions 和 .ruby-version 了。

asdf是什么?

多版本运行时管理器
https://asdf-vm.com

这是各种工具和语言版本管理工具。

安装

如果你使用Mac电脑,你可以从Homebrew轻松安装。
请根据你的环境自行安装。

$ brew install asdf

$ asdf --version
v0.12.0

安装完成后,根据您使用的Shell进行设置。

$ echo $SHELL
/bin/zsh

因为我正在使用zsh,所以我要对zsh进行设置。
如果你正在使用不同的shell,请在这里进行相应的设置。

$ echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc

安装和设置已经完成了。

使用方法

    • asdfのコマンド一覧

https://asdf-vm.com/manage/commands.html

asdf コマンドで見れます

asdfのプラグイン一覧

https://github.com/asdf-vm/asdf-plugins

asdf plugin list all コマンドで見れます。

.tool-versions, .asdfrc などの構成ファイルについて

https://asdf-vm.com/manage/configuration.html

重新建立现有环境

如果要加入正在以asdf环境开发的项目并进行git clone然后进行环境配置的话,以下是步骤。

$ asdf install

不限于 Node.js,指定版本的工具将通过 .tool-versions 文件进行管理并安装。
重新构建现有环境只需要一瞬间。

重新搭建Node.js环境。

$ asdf plugin list all
nodejs                        https://github.com/asdf-vm/asdf-nodejs.git

我要从插件列表中查找nodejs。截至撰写时,已注册了678个插件。

$ asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git

通过执行这条命令,Node.js插件已成功安装完成。

$ asdf list
nodejs

安装 Node.js

最新版本的安装

$ asdf install nodejs latest

指定版本进行安装。

# インストール可能なバージョンの一覧
$ asdf list all nodejs

# バージョンを指定してインストール
$ asdf install nodejs 18.17.0

Node.js的配置

设置使用本地安装的Node.js的哪个版本。

$ asdf list
nodejs
  18.17.0
  20.4.0
# 最新版を使う
$ asdf local nodejs latest

# バージョンを指定して選択
# asdf local nodejs 18.17.0

当在asdf本地运行时,会在当前目录中创建一个.tool-versions文件。

$ cat .tool-versions
nodejs 18.17.0

可以直接修改这个文件并进行版本设置,也可以通过命令设置,两种方式都可以。

$ node --version
v18.17.0

我成功确认安装了Node.js。
如果需要准备一个新环境,也非常简单。

附注:如果无法运行node命令

尽管我从未尝试过,但根据下面的命令,如果无法正确加载node命令,它会据说根据软件包的版本重新生成shim。

$ asdf reshim nodejs

補充:全球設定

$ asdf global nodejs latest

当设置asdf global后,将创建$HOME/.tool-versions文件,并且在没有.tool-versions文件的地方将会使用全局设置。

备注:现有版本管理工具的文件

补充说明:已经存在的版本管理工具中的文件

放置 .asdfrc 文件,然后您可以在 .node-version 和其他工具中引用它。

legacy_version_file = yes

在项目中使用不同的工具…例如,这种情况下可能不得不用一种权宜之计…基本上最好不要使用这种设置吧?

補充:安裝 Yarn

如果你在Node的包管理上想使用yarn而不是npm,那么你可以使用asdf提供的yarn插件。

$ asdf plugin add yarn https://github.com/twuni/asdf-yarn.git
$ asdf install yarn latest
$ asdf global yarn latest
$ yarn --version
1.22.19

我成功安装了Yarn。

補充:安裝 yarn 時出現錯誤。

$ asdf install yarn latest
Missing one or more of the following dependencies: tar, gpg

如果发生上述错误,请执行以下命令。

$ brew install gpg

asdf的维护工作。

不必特别做什么,但当想要尝试新版本时,需要更新asdf本体和插件。

# asdf 本体のアップデート
$ brew upgrade asdf

# asdf すべてのプラグインのアップデート
$ asdf plugin update --all

相關文章

 

bannerAds