iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
Modern Web

前端蛇行撞牆記系列 第 18

Day18 前端蛇行撞牆記 - volta刪除已下載node版本的方法

  • 分享至 

  • xImage
  •  

前言

延續上上一篇「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都消失了

事件一:SSH key消失之謎

雖然很莫名其妙就消失了,但後來就重辦,再綁定github, gitlab就好。

事件二:volta, node, npm消失之謎

隔天我在開新專案的時候,照例使用 npm init 卻發現沒有這個指令,而node, npm也都沒有。

那也沒關係就重新下載。

事件三:node 18.7.0 版本無法使用

由於我的專案有使用 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.jsonvlota { node: 18.7.0 } 刪除之後再輸入那些指令都可以了。

可是我必須使用node: 18.7.0的版本才能運行我的專案!
以上這些事情在terminal也一樣。如果版本是 node 18.7.0 就都無法使用指令

事件四:node 17.9.0 可以使用

後來我用 volta pin node@17 指令換成同樣也可以運行我專案的版本就可以了。
其他功能都可以正常使用。

折衷

這是當下的折衷方案,依然不知道問題出在哪?

  • 為何我的SSH, volta會突然消失?
  • 為何在 node 18.7.0 版本的時候就像是他們不存在一樣,什麼指令也都沒有用?
  • 這些謎團會是因為前一天的 fingerPrint 嗎?

解決

  • 先把 node 18.7.0 的出錯的版本刪掉,這個使用uninstall是無法刪除的,要去單獨刪除這個下載的版本。

第一步要先會查找已經安裝過的版本在哪裡,指令如下:

% 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


上一篇
Day17 前端蛇行撞牆記 - 在github上架設個人網站
下一篇
Day19 前端蛇行撞牆記 - node v.s element
系列文
前端蛇行撞牆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言