- require优先从缓存加载。
- 核心模块:
require('fs')
核心模块文件已经被编译到了二进制文件中了,我们只需要按照名字来加载就可以了 - 路径形式的文件模块
- 第三方包 art-template
凡是第三方模块都必须通过 npm 来下载
使用的时候就可以通过 require('包名')
的方式来进行加载才可以使用
- 先找到当前文件所处目录中的 node_modules 目录
- node_modules/art-template
- node_modules/art-template/package.json 文件
- node_modules/art-template/package.json 文件中的 main 属性
- main 属性中就记录了 art-template 的入口模块**
- 如果 package.json 文件不存在或者 main 指定的入口模块是也没有,则 node 会自动找该目录下的 index.js,也就是说 index.js 会作为一个默认备选项。
- 如果以上所有任何一个条件都不成立,则会进入上一级目录中的 node_modules 目录查找。如果上一级还没有,则继续往上上一级查找。
- 如果直到当前磁盘根目录还找不到,最后报错:can not find module xxx