使用 Rust 管理 Node.js 版本

前言

本篇文章同时收录在公众号《泡芙玩前端》,主打前端、Rust,同步更新中

这篇文章主要介绍一个使用 Rust 进行编写的一体化版本管理工具 Rtx,比如使用它来管理 Node.js 版本,它很简单易用,使用了它,就可以抛弃掉 nvm 了。

它拥有下面这些特性:

  • 它类似于 asdf 这个版本管理工具,完全兼容 asdf 的插件系统。
  • 速度非常快------因为它使用 Rust 编写,并且优化了性能,比 asdf 要快 20 倍以上。
  • 模糊匹配和使用别名------安装时只需要指定 "v20" 或 "lts" 版本就够了。Rtx 将计算出正确的版本,而不需要指定精确的版本。
  • 兼容非常多的语言,只需要使用这一个工具去代替 gvm、 nvm、 rbenv 和 pyenv 这些工具就够了。

那么 asdf 是啥?

asdf 是一个命令行工具,可以在每个项目上管理多个语言运行时的版本。就像 gvm、 nvm、 rbenv 和 pyenv 等这些版本管理工具的一体化集合,你只需要安装对应语言的插件即可,也就是说有了 它,就不需要安装别的一堆工具了。

那么 Rtx 也如 asdf 一样,可以直接作为替代品来使用,并且更强大。

虽然但是,它目前不支持 Windows 系统,但是官方已经在考虑支持中了。Linux 和 MacOS 的用户可以使用起来了,接下来我们就来说说如何安装和使用它吧

安装

使用 curl 安装(推荐):

bash 复制代码
curl https://rtx.jdx.dev/install.sh | sh

使用 npm 安装:

bash 复制代码
npm install -g rtx-cli

使用 Rust cargo 来安装

bash 复制代码
cargo install cargo-binstall
cargo binstall rtx-cli

注册命令钩子

安装完成之后需要在 shell 中注册命令钩子

Bash:

bash 复制代码
echo 'eval "$(rtx activate bash)"' >> ~/.bashrc

Zsh:

bash 复制代码
echo 'eval "$(rtx activate zsh)"' >> "${ZDOTDIR-$HOME}/.zshrc"

安装完成之后,可以查看到版本号说明安装成功了

bash 复制代码
rtx -v

安装 Node.js

安装 node 20 的长期支持版本并设置为全局默认

bash 复制代码
rtx use --global node@20

安装完成之后在控制台输入下面命令能打印出对应的版本即可

bash 复制代码
node -v

常用命令

perl 复制代码
rtx install node@20.0.0  安装指定版本号
rtx install node@20      模糊匹配安装
rtx use node@20          在当前项目中使用 node 20.x 版本
rtx use -g node@20       在全局使用 node 20.x 版本

rtx use node@latest      在当前项目使用最新版 node
rtx use -g node@system   使用系统的 node 作为全局版本

其它

上面只是提到了 node.js,除了 node.js 之外,比如 Java/Golang 等语言,只需要安装上它们对应的插件,然后就能够对其进行版本管理了。其它的还有一些配置化,定制化的能力就等需要使用到的时候再去探索好了。更多的能力大家也可以去参考下官方。

总结

这篇文章主要讲了这个工具的基础使用,但是对于我们日常来说其实也足够了,假如你现在同时在使用 Go/Node.js 或其它的多个语言,那么这个工具其实还是很不错的,可以让你省掉很多安装对应语言版本管理工具的流程。

本篇文章同时收录在公众号《泡芙玩前端》,主打前端、Rust,同步更新中

相关推荐
白兰地空瓶几秒前
一行 npm init vite,前端工程化的世界就此展开
前端·vue.js·vite
LYFlied1 分钟前
【每日算法】LeetCode 23. 合并 K 个升序链表
前端·数据结构·算法·leetcode·链表
xiaoxue..1 分钟前
LeetCode 第 15 题:三数之和
前端·javascript·算法·leetcode·面试
狂炫冰美式7 分钟前
《预言市场进化论:从罗马斗兽场,到 Polymarket 的 K 线图》
前端·后端
码力巨能编8 分钟前
Markdown 作为 Vue 组件导入
前端·javascript·vue.js
私人珍藏库9 分钟前
[吾爱大神原创工具] FlowMouse - 心流鼠标手势 v1.0【Chrome浏览器插件】
前端·chrome·计算机外设
Source.Liu22 分钟前
【time-rs】解释://! Invalid format description(error/invalid_format_description.rs)
rust·time
fegggye22 分钟前
创建一个rust写的python库[signatures和错误处理]
开发语言·python·rust
旧梦吟25 分钟前
脚本网页 地球演化
前端·算法·css3·html5·pygame
xiaoxue..28 分钟前
哨兵节点与快慢指针解决链表算法难题
前端·javascript·数据结构·算法·链表