使用 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
相關文章