<tbody id="iajvf"></tbody>

    1. <em id="iajvf"><acronym id="iajvf"><menuitem id="iajvf"></menuitem></acronym></em>
        <li id="iajvf"><acronym id="iajvf"></acronym></li>

        [技術分享]nrm 和 nvm 下 npm 失效

        zjscy666發布于2 年前 ? 1161 次閱讀

        前言


        最近小編心血來潮,想著試試nrm和nvm,來切換和管理不同的node版本和npm下載鏡像源。

        nrm


        先來接簡單說下nrm,這個其實是切換不同鏡像源用的,大家只要按照文檔下載按照,記住以下命令即可。

        nrm ls 顯示鏡像源
        nrm use cnpm 切換鏡像源
        npm i 對應切換的鏡像源下載
        

        再來個快速刪除node_modules的命令,如何卡頓,建議退出當前文件夾,然后重新打開

        rimraf node_modules 在目錄下快速刪除node_modules
        

        nvm


        nvm是一個管理安裝node不同版本的控制器,你可以下載,切換不同版本的node,這個工具很有用,具體大家按照文檔下載可以,記住以下命令就好了。

        nvm ls 查看現在的node版本
        nvm install 8.12.0 下載對應的版本
        nvm use 8.12.0 切換到8.12.0
        

        有一點要注意,如果你的系統是win,那么需要到github上下載最新版本的nvm-windows,如果不會使用github搜索下載,請出門右轉google,謝謝!

        安裝nrm和nvm后npm路徑出現問題


        這個問題引起的原因有很多,簡單說下,可能是你安裝nvm不是最新版本,可能你安裝的時候本地的node和npm沒有卸載干凈,有殘留??傊?,出現的效果就是在cmd中,node -v可以出現node版本, npm -v 直接報錯,說npm不是全局命令。

        上述問題的解決方案


        解決方案有兩個,第一個是最簡單的,把node, npm, nrm, nvm全部卸載干凈,保證沒有殘留,然后重新安裝nrm,nvm即可。 第二個方案是全局手動安裝npm即可,這個方案對于不想大動自己系統配置的童鞋來說,是最好的。

        全局手動安裝npm


        • github下載一個npm包,地址如下https://github.com/npm/npm/releases,記住下載的必須是穩定版本,或者最新版本,不要下載pre這類不穩定的版本。
        • 在node目錄下,創建node_modules\npm,然后把下載的npm包解壓。
        • 拷貝 node_modules\npm\bin 下面的 npm 或者 npm.cmd (依照操作系統) 到 node.exe 同目錄下。 到這一步還沒有萬事大吉,因為nvm可以生成和修改NODE_PATH路徑,但是也只能在管理員命令行窗口可用,你要想在自己的用戶窗口可用,你必須在用戶變量的path上配上%NODE_PATH%,完事!當然如果系統有輕微差異,在系統變量的path上也配上%NODE_PATH%。然后隨便打開命令行,輸入npm -v,就會出現對應的版本號。

        后記


        還有幾點要注意的

        • nvm一般在AppData\Roaming\nvm,除非你修改過。
        • npm中全局包和cache包的路徑問題,為了讓腳手架能用,建議npm中這兩個包維持原處,為了讓你原來的全局包能用上,不至于重新下載,這樣做還有個好處,可以讓你的編輯器(例如vscode)的終端用原來的,而不是重新配置編輯器的路徑等參數。
        npm config set cache=C....\AppData\Roaming\npm-cache
        npm config set prefix=C....\AppData\Roaming\npm-global
        
        • 如果你堅持要把npm-cache和npm-global遷移,那么最好在用戶變量中path配上C:…\AppData\Roaming\nvm\v8.12.0\npm-global,記住下面必須有.cmd腳手架文件,這樣才可以全局調用。
        • 最后說下nvm原理,nvm修改和配置全局node變量,并找到node同目錄下的npm,所以通過配置環境變量,可以全局和用戶中使用node和npm,npm通過配置global文件位置,在系統和用戶中path上配置變量,可以直接調用全局npm包命令。
        共收到 0 條回復