Mac 升級 vue 3.x 以前卸載 vue 2.9.6 失敗的緣由和解決方法

以前安裝了 vue 2.9.6 的版本,如今 vue 官方升級到了 3.x 版本,因此想卸載掉 2.9.6 的版本,安裝 3.x 版本,結果輸入官方給出的命令 npm uninstall vue-cli -g 卻沒法成功卸載,一直提示 up to time in 0.03s,而後百度和 Google 了很久,也沒見到有效的解決方法,最終沉下心慢慢的研究,終於知道了緣由,記錄下來,方便遇到相同問題的人。
先介紹緣由吧,可能你們都知道,npm 是 node 包管理器的簡稱(node package manager),在咱們安裝 node 的時候會一併安裝。正常狀況下,咱們安裝的 node 在 /usr/local/bin 目錄下,而 npm 在 /usr/local/lib/node_modules 目錄下,而後咱們經過 npm 的全局命令安裝的模塊也在 /usr/local/bin 目錄下(例如 npm install vue-cli -g),平時咱們在終端裏使用的 node --vesion 或者 vue --version 這種命令其實調用的就是 /usr/local/bin 中的命令。而咱們使用 npm uninstall vue-cli -g 命令卸載 vue-cli 模塊的時候,也是在這個目錄去找,去卸載。
可是若是咱們在已經安裝 vue 的狀況下再安裝 nvm(node 版本管理器,node version manager),就會出問題,nvm 會改變 npm 全局安裝模塊的路徑,我這邊的路徑變成了 ~/.nvm/versions/node/v10.15.1/bin,在安裝 nvm 以後我再使用 npm 的全局安裝命令安裝的模塊全都在這個目錄下。那麼咱們使用 npm uninstall vue-cli -g 命令去卸載 vue 固然是不會成功的,由於它是在 ~/.nvm/versions/node/v10.15.1/bin 目錄去卸載,而咱們的 vue 安裝在 /usr/local/bin 目錄下。
那麼知道了緣由以後,就得解決問題了,下面的方法可能不是最好的,你們能夠探索更好的方法。vue

  1. 刪除 /usr/local/lib/node_modules 目錄(謹慎選擇,由於這個目錄下可能還有其餘地方用到的模塊):sudo rm -rf /usr/local/lib/node_modules
  2. 刪除 /usr/local/bin 下的 node:sudo rm /usr/local/bin/node
  3. 刪除 /usr/local/bin 下的 vue:sudo rm /usr/local/bin/vue
  4. 刪除 ~/.nvm 目錄:sudo rm ~/.nvm
  5. 打開 ~/.bash_profile 文件:vi ~/.bash_profile
  6. 刪除 .bash_profile 文件中跟 nvm 有關的部分:node

    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
    [[ -r $NVM_DIR/bash_completion ]] && \. $NVM_DIR/bash_completion
  7. 使修改後的 .bash_profile 生效:source ~/.bash_profile
  8. 這時候在當前終端窗口裏面應該仍然可使用 nvm 命令,而後你關掉當前終端,從新打開終端輸入 nvm 命令,應該已經會提示 command not found
  9. 從新安裝 nvm(https://github.com/creationix... ):curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
  10. 從新安裝 node:nvm install --lts
  11. 從新安裝 vue:npm install -g @vue/cli

這時候使用 vue --version 看到的應該是 3.x 的版本了。而這些命令所在的目錄如今都是 ~/.nvm/versions/node/v10.15.1/bin。提示一下,要想看一個命令所在的目錄,可使用 which 命令,好比說 which vuewhich node,就會顯示命令所在的目錄。
最後,經過公衆號「極課助手」去購買「極客時間」全部課程,能夠得到高額返現,最高可返 51 元,若是想了解更多技術知識,能夠關注「極課助手」公衆號。
git

參考文獻:github

  1. https://my.oschina.net/oslph/...
  2. https://github.com/creationix...
相關文章
相關標籤/搜索