
一、Node.js 讀取模組邏輯
官方對於如何使用 require 載入模組,提供了一大段邏輯程式碼,有興趣可參考「require high-level algorithm」。 相信這個「英文邏輯樹」不容易解讀,這篇「深入Node.js的模組載入機制」提供了中文版說明:1. 優先載入內建模組,即使有同名檔案,也會優先使用內建模組。 2. 不是內建模組,先去快取找。 3. 快取沒有就去找對應路徑的檔案。 4. 不存在對應的檔案,就將這個路徑作為資料夾載入。 5. 對應的檔案和資料夾都找不到就去node_modules下面找。 6. 還找不到就報錯了。所以依照以上邏輯,正常情形我們只有在該「專案資料夾」之下,使用指令
二、能否讀取全域安裝的第三方模組
1. 原理為了避免在多個專案資料夾重複安裝第三方模組,我想嘗試看看,能否讓 require 讀取全域安裝的第三方模組,找到了這個討論串「NodeJS require a global module/package」。 這個討論串提供了不少作法,有的解法似乎有風險,有的解法適用 Linux,不過提供的概念還是有幫助,Node.js 如通過正確的設定,有辦法可讀取全域安裝的第三方模組。 找到了這篇「Node.js模組全域性安裝路徑配置方法」,即為前述討論串概念的中文操作方法,以下使用 npm 來說明如何操作。 2. 修改全域路徑首先在安裝 Node.js 的目錄(假設是npm config set prefix "d:\node\node_global" npm config set cache "d:\node\node_cache"
最後需要修改作業系統的「環境變數」,以 Windows 為例,操作方式為: - 按
Win+R →「執行指令 sysdm.cpl」→「進階」→「環境變數」 - 「使用者變數」→「新增」→ 變數名稱輸入「NODE_PATH」→ 變數值輸入「d:\node\node_global\node_modules」
- 儲存後,重新啟動 Windows 可生效
三、yarn 操作
以上為 npm 的相關操作,而 yarn 的操作請看以下說明。 1. yarn 全域資料夾位置yarn global dir
執行以上指令可找出 yarn 全域資料夾所在位置,而更改全域資料夾的指令,可參考這篇教學「yarn修改全局安裝路徑和緩存路徑」,範例如下: yarn config set global-folder "d:\node\node_global"
之後使用 - 同之前步驟,先執行指令 yarn config set global-folder "d:\node\node_global"
- 找到 .yarnrc 這個檔案並開啟
- 將字串
global-folder 改為--global-folder - 之後執行指令
yarn global add 模組名稱 ,就能發現模組出現在全域資料夾了
更多 Node.js 相關文章: