【教學:環境】設定 npm 的全域下載位置與環境變數
為了讓同一個 Windows 系統裡的另一個使用者也能存取一樣的 npm 全域 package,想修改 npm 的全域下載位置。
npm 全域的下載位置
先講一下 npm install
會下載的位置:
- 沒有加
-g
:會下載到當前資料夾下的「node_module」資料夾 - 加了
-g
:代表「全域」、在這個作業系統/使用者裡,無論在哪個路徑執行都可以使用- 依靠的是「環境變數」
以下記錄查看、更動 npm install -g
下載的位置相關:
- 預設下載位置
- Windows:
C:\Users\%USERNAME%\AppData\Roaming\npm
- Windows:
- 查看目前的下載位置
1
$ npm config get prefix
- 修改下載位置
1
$ npm config set prefix "(自訂路徑)"
- 去修改環境變數的「Path」
環境變數
設定操作流程
- 在 Windows,從開始功能表直接搜尋「環境變數」,就能找到「編輯系統環境變數」或是類似名字的東西。
- 點擊右下角的[環境變數]
- 選擇想要改變的影響範圍
- 上面是「使用者變數」,下面是「系統變數」
- 顧名思義,上面的設定只影響對應使用者(看前面寫誰);在下面的設定則會影響整個 Windows 系統。
- 這次要找的是「Path」欄位,點擊選中、並點選下面的[編輯]
- 點擊右邊的[新增],輸入剛剛自訂的路徑
- 一路點擊[確定]出去
原理
- 環境變數的「Path」的意義
- 當我輸入一個指令,如果當前目錄下沒找到對應的執行檔,請到 Path 的那些目錄裡找
- 也就是說,在任何路徑執行終端機都可以使用已在 Path 目錄下的執行檔
- npm 下載到該目錄,並把該目錄設在 Path,這樣就能在任何路徑使用全域下載的 package 了。
補充:我為什麼遇到問題、想改這個設定?
在安裝 NodeJS 時,如果使用官網的安裝工具、一路下一步,通常就會一起安裝「npm」、並在使用者環境變數設定預設的全域下載路徑。
但,我遇到的問題是切換到另一個使用者,因為這個新使用者的環境變數裡沒有指向預設全域下載路徑、所以無法使用那些功能;雖然可以去把路徑設在系統環境變數、就能跨使用者使用,但預設路徑在 C:\Users\(舊使用者的 %USERNAME%)\
底下,總感覺怪怪的。