延續上上一篇「github, gitlab設定不同SSH key」。
在創建github, gitlab的SSH碼之後,因為犯蠢原本的專案沒有git init,所以他會抓不到現在要連結哪個遠端版本庫,但我以為是因為SSH沒有正確連結到,所以當他在詢問 (YES/ NO/ fingerPrint) 的時候就直接複製下面的 fingerPrint 貼上。(但其實只要寫下YES應該就沒事了)
The key fingerprint is:
SHA256:43K1jWPQ3r+2n0yLTDXscG0pFLy07pnh7iAcPNQ02Q0 y3m45566@gmail.com
後來就有強制推成功,只是push的人變成是用我本機設定的名字,而不是github的帳號。
這件事結束之後,發現我原本設定兩個SSH key都消失了
雖然很莫名其妙就消失了,但後來就重辦,再綁定github, gitlab就好。
隔天我在開新專案的時候,照例使用 npm init
卻發現沒有這個指令,而node, npm也都沒有。
那也沒關係就重新下載。
由於我的專案有使用 readline/promise ,node版本有用volta切換成 18.7.0 才能運行。
現在回到這個環境裡,使用 node q1.js
, node -v
, npm -v
都出現:
Volta error: Node is not available.
To run any Node command, first set a default version using `volta install node`
Error details written to /Users/chenziyu/.volta/log/volta-error-2022-08-16_14_15_04.052.log
再次重新下載之後會顯示:
success: installed and set node@16.16.0 as default
note: you are using node@18.7.0 in the current project
雖然成功下載了,但我卻無法使用,指令 node -v
, npm -v
也還是不行。
於是我嘗試把 package.json
的 vlota { node: 18.7.0 }
刪除之後再輸入那些指令都可以了。
可是我必須使用node: 18.7.0的版本才能運行我的專案!
以上這些事情在terminal也一樣。如果版本是 node 18.7.0
就都無法使用指令
後來我用 volta pin node@17
指令換成同樣也可以運行我專案的版本就可以了。
其他功能都可以正常使用。
這是當下的折衷方案,依然不知道問題出在哪?
第一步要先會查找已經安裝過的版本在哪裡,指令如下:
% volta list --verbose all
會出現:
⚡️ User toolchain:
Node runtimes:
v16.15.0
v16.16.0 (default)
v17.9.1
v18.6.0
v18.7.0
Package managers:
npm:
v8.17.0 (default)
Packages:
sass@1.51.0 (default)
binary tools: sass
platform:
runtime: node@16.15.0
package manager: npm@built-in
所以我們現在知道volta儲存了這幾個node的版本。
接下來要怎麼uninstall node@18.7 ? 官網並沒有提供刪除版本的方式。
於是找到這篇文章:
https://github.com/volta-cli/volta/issues/855
有人詢問這個issue,volta的人有提供路徑去刪除。
路徑查找:(從本機)
% .volta/tools/image/node/%LOCALAPPDATA%\Volta\tools\image\node\
執行流水帳,but important to me
chenziyu@chenziyudeMacBook-Air ~ % ls
Applications Js30 Public movie t4 文件
Desktop Library README.md practice t6
Documents Movies component-testing t1 t7.1
Downloads Music j1 t2 test
J17_test Pictures mood.pages t3 tutorial
chenziyu@chenziyudeMacBook-Air ~ % cd .volta
chenziyu@chenziyudeMacBook-Air .volta % ls
bin cache layout.v3 log tmp tools volta.lock
chenziyu@chenziyudeMacBook-Air .volta % cd tools
chenziyu@chenziyudeMacBook-Air tools % ls
image inventory shared user
chenziyu@chenziyudeMacBook-Air tools % cd image
chenziyu@chenziyudeMacBook-Air image % ls
node npm packages yarn
chenziyu@chenziyudeMacBook-Air image % cd node
chenziyu@chenziyudeMacBook-Air node % ls
16.15.0 16.16.0 17.9.1 18.6.0 18.7.0
chenziyu@chenziyudeMacBook-Air node % ls -al
total 0
drwxr-xr-x 7 chenziyu staff 224 8 16 17:40 .
drwxr-xr-x 6 chenziyu staff 192 4 29 11:42 ..
drwxr-xr-x 6 chenziyu staff 192 8 15 16:46 16.15.0
drwxr-xr-x 9 chenziyu staff 288 8 16 13:20 16.16.0
drwxr-xr-x 9 chenziyu staff 288 8 16 14:17 17.9.1
drwxr-xr-x 9 chenziyu staff 288 8 16 17:40 18.6.0
drwxr-xr-x 6 chenziyu staff 192 8 15 16:46 18.7.0
chenziyu@chenziyudeMacBook-Air node % rm -rf 18.7.0
然後再安裝一次之後 node -v
就正常了~撒花!
如果版本有問題就刪掉再重裝!
刪掉不難知道路徑比較難。
很多提供刪除的方法都是直接uninstall,但只需要刪除下載過的版本就好,而這個不能用 uninstall 的方式,需要直接去volta儲存的資料夾刪除。
感謝 Chris 的幫忙~~
參考資料:Volta Node is not available when opening a bash terminal #1007
Unclear how to remove Node.js version