nodejs模块查找顺序

本文详细解析了Node.js中模块的加载过程,包括core module、file module和folder module的查找顺序,以及如何处理同名模块冲突。介绍了exports仅在严格模式下支持,module在加载后会进行缓存,避免重复加载,同时指出了修改已加载模块可能带来的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方文档参考 http://nodejs.cn/api/modules.html#modules_loading_from_node_modules_folders

exports 只支持严格模式

 

module查找顺序:

1. core module 

  Node.js has several modules compiled into the binary,自定义同名模块会被node核心模块覆盖

2. file module 

  先查找同名module文件,没找到就自动加上后缀.js .json .node扩展名,为加快查找效率如果不是.js后缀可以加上后缀

3. floder module

  上面的文件没有找到的话,会查找node_modules下的同名目录,查找目录下的package.json文件

{
    "main": "lib/main.js",
    "module": "es/main.js"
}

  package.json中main 指定文件, module 指向es6中export的对应文件

  没有package.json文件的话会查找默认的index.js文件

  加载完进行缓存,之后的相同模块从缓存内读取不会重新加载,修改模块内容会对其他地方的模块引用造成影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值