require一般只加載兩種東西:
- 文件:require參數(shù)字符串中以 './' 或 '/' 開頭,比如
require('./students.js'); - 模塊:require參數(shù)字符串沒有 '/',比如
require('fs');
下面就這兩種情況分別闡述。
一、 require 加載文件
我做了一個(gè)算法流程圖,更加直觀。

require加載文件規(guī)則.png
簡單總結(jié)一下規(guī)則:
- 先加載文件,優(yōu)先級(jí)為:.js > .json >.node
- 沒有文件加載文件夾:
- 先看有沒有
package.json,有的話,加載package.json里main屬性指定的文件。 - 沒有
package.json,加載該目錄下的index.js文件
- 先看有沒有
這是我目前遇到過的所有情況,如果還有其他遺漏,歡迎小伙伴們?cè)谠u(píng)論里補(bǔ)充。
require 加載模塊

require加載模塊.png