【无标题】

require或者import的时候,不加相对路径,加载模块的顺序是什么

当在 require 中不加相对路径时,即只指定模块名而不指定具体路径,Node.js 会按照以下顺序来加载模块:

1、核心模块(Core Modules):Node.js 内置的模块,如 fs、http 等。可以直接通过模块名引用,无需指定路径。

2、文件模块(File Modules):自定义的模块文件,可以是 JavaScript 文件(.js)或 JSON 文件(.json)。在 require 中指定相对或绝对路径引用。

3、文件夹模块(Folder Modules):当在 require 中指定一个文件夹路径时,Node.js 将查找该文件夹下的 index.js、index.json 或 index.node 文件作为模块入口。

4、第三方模块(Third-party Modules):通过 npm 安装的第三方模块。在 require 中指定模块名引用,Node.js 将在项目的 node_modules 目录中查找并加载对应模块。

问题来了?如果第三方模块和自定义模块名称重复,那么模块会优先加载哪个?

如果第三方模块和自定义模块名称重复,Node.js 会优先加载项目目录下的自定义模块,而不会加载第三方模块。这是因为在查找模块时,Node.js 会按照模块的查找顺序逐个尝试加载,先找到的模块会被加载,后面的同名模块将被忽略。
因此:
如果你希望明确加载第三方模块而不是自定义模块,可以在模块名称前加上路径分隔符 ./ 或 /,或者使用相对路径或绝对路径指定模块的位置,以避免与自定义模块产生冲突。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值