在使用 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
移除,不用多說了,一般也不會用到。
示例:
寫這個的一個主要原因是中文互聯網居然連這個都很難檢索到有用內容,做一個補充。