Node.js作為前端的基礎能力已經不僅僅是一個“JS Server Runtime”了,大量的工具庫,本地包管理,Mock環境等,都基於Node.js構建了出來,已經名副其實的成為了前端界的基礎設施。
繁榮的生態讓大家在構建前端項目的時候不得不安裝Node.js。但是歷史悠久的產品總會有版本問題,有的需要新的版本,有的需要之前的版本,多版本的Node.js一直是困擾每一個人的問題。
目前開源產品nvm解決了這個問題,簡單的命令行使用即可快速的切換不同版本的Node.js,讓每一個開發者都可以不浪費時間在環境配置的問題上。
目前前端開發的主流機器依然是Macbook,所以本文會講一下目前如何優雅的在Mac上安裝和使用nvm來高效的管理Node.js版本
推薦一個開發後台的開源項目
ILLA Cloud是一個開箱即用的低代碼工具,使用ILLA可以無需新建任何項目,使用簡單的JS即可快速構建內部工具
- Web & App Admin Panel
- Data Dashboard
- Customized B2B Tools
相對於使用組件庫構建的場景下,使用ILLA Cloud可以10x速度構建上述工具,並且ILLA Cloud支持多人協作,可以團隊內部多人協同編輯。快速構建定製化的後台能力。
nvm介紹
⏬ Github地址:https://github.com/nvm-sh/nvm
⭐ Github Stars: 72.4k
💪🏼 First Release Date: Dec 22, 2014
nvm是一個維護了將近10年的開源項目,看來良好的口碑確實能讓一個項目長久不衰,而且經過不斷的維護,在解決“Node.js版本管理”這個問題上已經非常的完美了。
安裝nvm
既然是使用Mac來進行開發,強烈推薦大家使用Homebrew來做包管理,然後使用Homebrew來進行安裝nvm。
安裝Homebrew推薦使用Homebrew的安裝腳本,基本不需要任何配置即可馬上使用,而且對於每一個使用Homebrew安裝倉庫如果不想使用了可以隨時純淨卸載,不需要任何麻煩的事情。
> /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
運行這個命令即可一鍵安裝Homebrew最近版本,他會自動進行安裝,並且因為是MacOS環境,會自動安裝Xcode Command Tools。
當然了,這一切都是自動的。下面是一個安裝過程
等待一會之後就可以正式進行安裝nvm了,這裏我們使用安裝好的Hombrew進行安裝。
> brew install nvm
確認同意之後即可完整的安裝好nvm,如果哪天不喜歡了還可以使用下面的命令汗刪除
# delete nvm if you don't need it.
> brew uninstall nvm
使用nvm
安裝好nvm之後這裏講幾個常用的nvm命令來幫助大家使用,今本上可以滿足日常的需求
> nvm list
"list"命令的作用是展示當前主流的各種Node.js版本,大家可以按照需求進行安裝,還會顯示出本機當前使用的Node.js版本。他會顯示出一些代號。
比如“lts/gallim”就是Node.js v16的版本名稱,後續使用“lts/gallim”代號安裝,nvm會自動安裝v16的最新版本。使用上還是很方便的。當然了,使用這個命令也可以查看當前使用的版本。
還有另外一個命令可以查看當前的Node.js版本
> node --version
輸入之後即可查看當前的Node.js版本是否切換成功
> nvm install stable
第二個命令是安裝某一個Node.js版本,“stable”指某一個版本號,這裏面也可以使用某一個版本的代號來進行安裝,比如安裝“Nodejs 18”就使用“nvm install 18”來進行安裝,非常的人性化。這裏我進行安裝“stable”版本。nvm會自動判斷最新版本的Stable是什麼,並且給我進行安裝。安裝成功之後會自動切換到安裝好的版本里面。
有安裝命令就一定有刪除命令,使用
> nvm unstall stable
即可刪除對應的版本。
當我們學會了安裝和刪除之後,就重要的當然是切換版本了。
> nvm use stable
使用“use”命令即可快速切換當前環境使用的Node.js版本,“stable”代號也是可以的,這樣大家在不同的項目裏面就可以快速的切換對應的版本了。
總結
本文寫清楚了作為一個新手從安裝到使用nvm的全過程,大家可以快速的嘗試起來,從而更好的管理好自己的Nodejs版本。
Node.js版本管理是一個老生常談的問題,nvm是一個非常優秀的解決這個問題的開源項目,當然了沒有任何完美的項目,如果大家有什麼其他的推薦,可以留言哦,讓更多的人知道更多優秀的項目是我們開源愛好者的使命~