nodejs中模塊查找規(guī)則
當你在代碼中使用import 或 require語句引入模塊時,Node.js 會按照以下順序查找模塊:
一、基本查找規(guī)則
1,核心模塊(內置):
如果模塊名是Node.js核心模塊(如fs、path、http等),則直接使用核心模塊。
2,相對路徑:
如果模塊名以./或../開頭,則將其視為相對路徑,解析為相對于當前文件的路徑。
3,絕對路徑:
如果模塊名以/開頭,則將其視為絕對路徑,解析為文件系統(tǒng)中的絕對路徑。
4,第三方模塊:
如果模塊名不是以上三種情況,則將其視為一個包名,Node.js會在node_modules目錄中查找該包(下面會介紹)
二、第三方模塊的查找步驟
如果寫入的路徑不是以相對路徑或者絕對路徑開始的,直接寫的element-plus:
import ElementPlus from 'element-plus'
此時,我們引入的是一個第三方模塊時,Node.js會按照以下步驟查找模塊:
1,逐級向上查找:
Node.js會從當前文件所在目錄開始,逐級向上查找node_modules目錄,直到找到匹配的包或到達文件系統(tǒng)的根目錄。
2,讀取package.json:
如果在任何一級目錄中找到了node_modules目錄,并且該目錄包含所需的包,則Node.js會讀取該包的package.json文件,以確定包的入口文件(通常是main字段指定的文件)。
如下圖element-plus的入口文件:

main配置選項:
"main": "lib/index.js",
可以看到, element-plus的入口文件是lib/index.js。當我們在頁面中引入import ElementPlus from 'element-plus 時,它會首先進入lib/index.js 這里面;
那如果沒有package.json文件或main字段為空呢?會默認使用index.js文件作為入口文件.
3, 默認入口文件:
如果沒有package.json文件或main字段,Node.js會默認使用index.js文件作為入口文件。
上面這幾部查找過程是遞歸的,會向上一級目錄逐層查找,直到根目錄,如果還沒找到,則拋出錯誤:
Error: Cannot find module 'element-plus' // [!code warning]
官方介紹:https://nodejs.org/api/modules.html#loading-from-node_modules-folders
到此這篇關于nodejs中模塊查找規(guī)則的文章就介紹到這了,更多相關node 模塊查找內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Node.js 構建命令行工具之實現(xiàn) ls 命令的 -a 和 
本文介紹了如何使用Node.js實現(xiàn)一個簡單的命令行工具,模仿常用的ls命令,包括其-a和-l參數(shù)的功能,文章詳細講解了命令行參數(shù)的解析、文件類型的判斷、權限信息的處理、文件鏈接數(shù)和修改時間的格式化等步驟,并提供了完整的代碼實現(xiàn)2024-11-11
PostgreSQL Node.js實現(xiàn)函數(shù)計算方法示例
這篇文章主要給大家介紹了關于PostgreSQL Node.js實現(xiàn)函數(shù)計算的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-02-02
Nodejs實現(xiàn)爬蟲抓取數(shù)據(jù)實例解析
這篇文章主要介紹了Nodejs實現(xiàn)爬蟲抓取數(shù)據(jù)實例解析,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧2018-07-07
利用Chrome DevTools直接調試Node.js和JavaScript的方法詳解(并行)
現(xiàn)在我們可以用瀏覽器調試node.js了!!!下面這篇文章主要介紹了利用Chrome DevTools直接調試Node.js和JavaScript的方法步驟,文中介紹的很詳細,需要的朋友可以參考學習,下面來一起看看吧。2017-02-02

