nodejs中 require 方法的加载规则

require加载的顺序

 

1. 优先从缓存中加载

2.从核心模块中加载(核心模块己编译成二进制文件,所以按名字加载)

3. 从路径中加载文件

4. 第三方模块

 

一、优先从缓存中加载

 

二、核心模块

 

核心模块的本质也是文件,核心模块文件已经被编译到了二进制文件中了,我们只需要按照名字来加载就可以了。

 

三、路径形式的模块

 

我们说的路径形式的模块,其实就是加载自己写的JS文件,有四种方式可以加载

 

四、第三方模块

既不是核心模块、也不是路径形式的模块,就是第三方模块。加载方式如下

  1. 凡是用到第三方模块,都必须通过 npm 来下载
  2. 使用的时候就可以通过 require(‘包名’) 的方式来进行加载才可以使用
  3. 不可能有任何一个第三方包和核心模块的名字是一样的

 

先找到当前文件所处目录中的 node_modules 目录
然后根据以下方式找到文件中的 main 属性
main 属性中就记录了 art-template 的入口模块
然后加载使用这个第三方包,但是实际上最终加载的还是文件
如果 package.json 文件不存在或者 main 指定的入口模块是也没有
则 node 会自动找该目录下的 index.js,也就是说 index.js 会作为一个默认备选项
如果以上所有任何一个条件都不成立,则会进入上一级目录中的 node_modules 目录查找
如果上一级还没有,则继续往上上一级查找
如果直到当前磁盘根目录还找不到,最后报错: can not find module xxx
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值