在使用 node 的过程中,我们可能会因为版本更新或者不同项目的要求而频繁切换 node 版本,或者是希望使用更简单的方式安装不同版本的 node,这个时候我们一般会用到 nvm 或者类似的工具。
在我尝试使用 bun 的时候,安装前第一个想到的问题就是:如果 bun 持续更新后,我想要使用最新版本,该怎么切换?
带着这个问题我简单搜索了一下,中文互联网没有搜索出什么有用的,仅查找到一个用于 asdf 的插件来通过 asdf 管理不同版本的 bun,仓库地址:https://github.com/cometkim/asdf-bun。
但是因为需要同时管理 asdf 和插件,我觉得不够一步到位,所以转到英文关键字的搜索,发现了一些东西。
首先是在 bun 仓库的 issue 中发现了官方对版本管理工具的看法:
有用户早在 23 年就提出是否可以在 bun 中内置一个版本管理工具,以避免使用 node 时需要额外安装 nvm 的问题,官方的态度也是很明显,将 issue 标记为了 Not Planned
。
但是继续查找后发现一个比较好的开源项目 bum
(命名显然收到了 nvm 的影响,并且从他的命令行设计也看的出来),虽然 star 不多,地址如下:https://github.com/owenizedd/bum。
需要注意的是这个项目的作者使用的是 mac,所以按道理在 mac 和 linux 上问题都不大,windows 就自己试试能不能用了。
接下来介绍的是 bum 的安装和使用。
安装
很简单,官方提供了一个脚本:curl -fsSL https://github.com/owenizedd/bum/raw/main/install.sh | bash
该脚本会默认安装 bum 和最新版的 bun,安装完记得刷新环境变量或者重启终端。
但是在安装完成以后我发现我使用的这个版本没有自动将安装的 bun 添加到 bum 的管理中,这个问题不大,下面说。
使用
为什么说他收到 nvm 的影响?因为他的命令行基础命令和 nvm 的一样,可以无缝切换过来:
bum use
会切换到目标版本,如果 bum 发现自己管理中的没有,则会自动下载。上面说到通过脚本安装可能会出现没有自动添加 bun 到 bum 中的问题,那么先bun --verison
然后bum use {version}
就好了。bum list
将列出本地已经安装且纳入 bum 管理的可用版本。bum list-remote
将列出可以下载和纳入管理的版本,bum use {其中的版本号}
将安装对应版本并自动纳入管理。bum remove
移除,不用多说了,一般也不会用到。
示例:
写这个的一个主要原因是中文互联网居然连这个都很难检索到有用内容,做一个补充。