NodeJS模組全域性安裝路徑配置
下載安裝NodeJS後,在自己選擇的路徑下會有如下的檔案:
預設情況下NodeJS安裝會同時安裝npm(模組管理器:用於管理使用者require的模組,有全域性和本地兩種)。
注:全域性:執行npm install <模組的名字> -g 就會將模組裝在全域性路徑下,當用戶在程式中require(<模組的名字>)的時候不用考慮模組在哪,如果不修改全域性路徑,使用者下載的模組會 預設在C:\Users\Administrator\AppData\Roaming\npm這個路徑下。
區域性:執行npm install <包的名字>(注意少了-g)就會將模組安裝在dos窗當前指向的路徑下,如:
會將模組express安裝在對應C:\Users\Administrator下的node_modules中,這時候其他路徑專案無法引用到該版本的express模組!
以上NodeJS的環境基本搭建完成,可以嘗試執行一些js檔案啦~~~
But!有時候,會有使用者想修改預設的全域性路徑:
我們要先配置npm的全域性模組(node_global)的存放路徑以及快取(global_cache)的路徑,例如我希望將以上兩個資料夾放在D:\SoftWare\NodeJS_Redis\NodeJS\node_modules下:
1)在D:\SoftWare\NodeJS_Redis\NodeJS\node_modules下建立”node_global”及”node_cache”兩個資料夾。如下圖
2)在DOS窗中執行:
npm config set prefix “D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_global”
npm config set cache “D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_cache”
如果這種方法無法修改還可以:
在nodejs的安裝目錄中找到node_modules\npm\.npmrc檔案
修改如下即可:
prefix = D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_global
cache = D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_cache
3)此時,npm模組安裝的預設全域性路徑已經改到了相應的資料夾中,但是 這時候使用者還是無法require這些模組,因為電腦系統現在還不知道你把預設路徑給改了,所以需要在“我的電腦”-->“右鍵”-->“屬性”-->“高階系統設定”-->“環境變數”開啟設定對話方塊。
4)下面是最關鍵的地方(決定修改成敗的地方!):
①首先在“系統變數”中新建,新建一個名為NODE_PATH的變數,變數值為:之前新建的用於存放全域性模組的資料夾中的node_modules資料夾的絕對路徑。(告訴系統 使用者下載的全域性模組在此處)。
即:D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_global\node_modules
②新建完NODE_PATH後,還需要告訴系統,node和npm的位置,這時候需要在“環境變數”的對話方塊“系統變數”這一欄中找到“path”變數,
雙擊開啟,在已有內容的最後先新增一個英文分號“;”,之後檢查路徑下是否有
D:\SoftWare\NodeJS_Redis\NodeJS; (node和npm的地址)
下面這一條是如果安裝了supervisor需要新增:
D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_global; (supervisor路徑,supervisor比較特殊並且只能通過全域性的方式安裝,具體特殊性如果有興趣繼續往下看!!!)
有且只要這兩個內容,多了其他的關於nodejs刪除。
——————————————————————————————————————————————————————————————————————————
寫在最後:關於supervisor模組安裝與執行的特殊性的個人理解:
supervisor這個模組可以隨之監控使用者修改並執行,省去了使用者每次修改完程式再輸一遍node ***.js的麻煩。它雖然方便,但是在安裝和使用的過程中需要有幾個地方注意:
1、安裝問題:
如果使用者自定義了模組全域性路徑,這時候一定要在“系統變數”下的“path”變數中新增supervisor模組所在的檔案絕對路徑。特殊性就在與它的路徑不和使用者下載的其他模組一起,而是在上一層資料夾中,
D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_global; supervisor模組所在路徑
D:\SoftWare\NodeJS_Redis\NodeJS\node_modules\node_global\node_modules; 使用者下載其他模組所在路徑
其中: node_global是之前建立用於存放所有全域性模組的資料夾。
2、執行問題:
執行supervisor最好在專案所在的資料夾路徑下執行,否則有可能會出現程式意外終止或者不斷建立子程序,尤其在cmd預設路徑下執行時會出現程式無法執行的現象。