node之require加载顺序及规则
2019-08-08 本文已影响0人
LilyLaw
require一般只加载两种东西:
- 文件:require参数字符串中以 './' 或 '/' 开头,比如
require('./students.js')
; - 模块:require参数字符串没有 '/',比如
require('fs')
;
下面就这两种情况分别阐述。
一、 require 加载文件
我做了一个算法流程图,更加直观。
require加载文件规则.png
简单总结一下规则:
- 先加载文件,优先级为:.js > .json >.node
- 没有文件加载文件夹:
- 先看有没有
package.json
,有的话,加载package.json
里main属性指定的文件。 - 没有
package.json
,加载该目录下的index.js
文件
- 先看有没有
这是我目前遇到过的所有情况,如果还有其他遗漏,欢迎小伙伴们在评论里补充。