require方法加载规则

一.优先从缓存加载规则

二.路径形式的模块:

  • ./ 当前目录,不可省略

  • ../上一级目录,不可省略

  • /xxx

  • d:/a/foo.js几乎不用

  • .js后缀名可以省略

三.核心模块的本质文件:

  • 核心模块文件已经被编译到了二进制文件中,我们只需要按照名字来加载就可以了
  • require('fs')
  • require('http')

四.第三方模块:

所有第三方模块都是通过npm下载来的,可以通过 require('包名') 的方式来进行加载才可以使用,第三方包不可能和核心模块的名字一样,既不是核心模块,也不是路路径形式的模块;

eg.

var template = require('art-template')
  • 先找到当前文件的所处目录中的node-modules目录
  • node-modules/art-template
  • node-modules/art-template/package.json文件
  • node-modules/art-template/package.json文件中的属性
  • main属性中就记录了art-template 的入口模块
  • 然后加载使用这个第三方包,(也就是文件)

Note:

如果pakage.json文件不存在或者main指定的入口模块是也没有,则node会自动找到目录下的index.js,index.js会作为一个默认选项;

如果以上任何一条件都不成立,则会进入上一级目录中的node-modules目录查找,如果上一级还是没有,就继续找上一级,最终找不到,就会报错:can not find module xxx ;

我们在项目根目录中放入node-modules文件,这样项目中的所有子目录中的代码就可以加载到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值