require的加载规则
- 优先从缓存加载
- 判断模块标识符
- 核心模块方式如require(’fs‘),核心模块文件已经编译到了二进制文件中了我们只需要按照名字来加载就可以
- 相对路径require(./foo.js)
- 第三方模块,凡是第三方模块必须通过npm下载,通过require包名来加载才可以使用,先找到当前所属目录中的node_modules目录,然后找对应包名,比如node_modules/art-template/package.json文件中的main属性。
- 如果以上所有任何一个条件都不成立,则会进入上一级目录中的node_modules目录查找,如果还没有继续往上,如果当前磁盘根目录还找不到,则会报cant find modules