node之require加载顺序及规则

require一般只加载两种东西:

  • 文件:require参数字符串中以 './' 或 '/' 开头,比如 require('./students.js');
  • 模块:require参数字符串没有 '/',比如 require('fs');

下面就这两种情况分别阐述。

一、 require 加载文件

我做了一个算法流程图,更加直观。


require加载文件规则.png

简单总结一下规则:

  1. 先加载文件,优先级为:.js > .json >.node
  2. 没有文件加载文件夹:
    • 先看有没有package.json,有的话,加载package.json里main属性指定的文件。
    • 没有package.json,加载该目录下的index.js文件

这是我目前遇到过的所有情况,如果还有其他遗漏,欢迎小伙伴们在评论里补充。

require 加载模块

require加载模块.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容