win10下npm/node安裝與環境變量配置/npm更新

網上搜了不少文章可是感受都很差,本身寫一個:
此文僅針對win10下安裝node,版本爲v8.11.0
node下載地址選擇對應版本
通常選穩定版64位.msi
若是以前裝過node,安裝以前最好先手動刪除相關環境變量,和相關node_modules文件夾。
下載後的安裝包首先取得管理員全部權
網上不少教程都會所有點下一步,其實新版node彷佛?是自帶配置PATH功能的:
本身選路徑,我選的是D:\nodejs\html

安裝時選Add to Path
安裝時選Add to Path
而後各類下一步,直至finish.
完成以後,咱們查看環境變量:
控制面板>系統>高級系統設置>環境變量>
就能發現他已經幫咱們配置好了?環境變量..
Node.js
npm
其中後者是設置在roaming的,貌似是若是和其餘用戶公用設備會產生一些問題,不太懂,相關能夠閱讀npm官方文檔。
這裏我就開始很疑惑了,網上找的配置node環境變量的文章,爲何都是配一個node_global或者node_modules的東西?而沒有這個npm的東西。
而當用npm install一些包以後,有全局安裝和本地安裝,那麼nodejs下有node_modules,appdata下也有node_modules,二者有什麼區別呢?還須要作什麼配置嗎?
鑑於msi安裝時的配置,一個是系統的環境變量,一個是當前用戶(我是administrator),node

環境變量的有兩種,一種是系統環境變量,另外一種是用戶環境變量。系統環境變量的設定對全部用戶都起做用,而用戶環境變量只對當前用戶起做用。

「當要求系統運行一個程序而沒有告訴它程序所在的完整路徑時,系統除了在當前目錄下尋找此程序外,還會到系統的環境變量path和用戶的環境linux

變量path中指定的路徑去找。(系統的環境變量優先)」ios

是否,取得管理員權限時會調用前者,不然會調用後者,而windows貌似是很是容易不知道搞沒搞到權限的?git

結合網上的配置文章,在未找到相關資料的狀況下,我做以下推測:
默認狀況下,npm和Node一塊兒裝在C:\Program Files (x86)\nodejs,如下簡稱%Program%
而包括npm本身和他全局安裝的包(cnpm..etc)是裝在另外一個user-specific路徑的C:\Users\<username>\AppData\Roaming\npm,如下簡稱%Appdata%
由於在環境變量中,安裝程序把%Program%放在%Appdata% 前面,他會一直使用和node裝一塊兒的npm,而不是你安裝的npm -g install npm@<version>github

????npm

npm的wiki中關於windows中npm更新,咱們能夠了解到:
可下載win下npm更新軟件windows

解決的思路就是隻選一個,前兩種是刪%Program%
有三種可選解決方法,步驟a以下:
選擇1.環境變量中把%Appdata%\npm%Program%\nodejs前面,每次配置完環境變量或者安裝npm須要重啓cmd.exe,可能windows也要重啓。app

選擇2.將二者都刪除:
%Program%\nodejs\npm
%Program%\nodejs\npm.cmdspa

選擇3.在%Program%\nodejs\node_modules\npm'文件夾下,複製npmrc`文件至另外一個文件夾或桌面,而後打開cmd.exe,輸入下面命令:

cd %ProgramFiles%\nodejs
npm install npm@latest

若是你是使用Node.js安裝程序,在完成上述步驟a的一種後,作步驟b:
選擇1或2.把npmrc從%Program%\nodejs\node_modules\npm'複製出來黏貼到%appdata%npmnode_modulesnpm`

https://en.wikipedia.org/wiki...
關於環境變量,在windows系統上,地址之間使用;分開的。當在命令行輸入命令,執行一個程序的時候,系統會如今本地路徑搜索,而後就會去環境變量中尋找,在PATH中從左到右尋找可執行的文件名.EXE.COM,或是BAT,CMD

npm使用$APPDATAnpm來保證非管理員也能寫和存儲全局包。若是這個路徑不存在,建立他須要管理員權限,npm -g install就沒法運行
Windows installer doesn't ensure that $USERNAMEAppDataRoaming exists

(其實有一種方法使用nvm管理Nodejs的版本,可是我感受nvm很是黑魔法,我不會用,有卸載圖爲證,反正有陰影了,不想碰nvm卸載後黑魔法吧
可是並不排除以上問題,並不是nvm,而是一直被人詬病的「npm是屎同樣的存在,node是翔同樣的存在,二者合二爲一,啪啪啪啪..」??

事實上用命令行安裝更好?能夠有相關安裝log若是報錯能夠知道?
詳細參見某目錄下工做人員回覆?忘了在哪看過的了...
敢興趣能夠搜一下...

但是怎麼得到命令行的管理員權限?
linux/ios下能夠sudu blablabla

編輯環境變量注意事項,這篇講的很細

爲何 npm 要爲每一個項目單獨安裝一遍 node_modules?

腦袋疼 有空再糾結了

相關文章
相關標籤/搜索