Node.js中require加载文件原理


nodejs中require函数原理详解

例子:当前脚本文件home/project/about/index.js里面执行
require('x')

分析其查找顺序:
1,如果x是内置模块 (比如:require("http"))
从node系统模块查找
2,如果x不是内置文件
1) 首先确定x的路径可能是下面这些路径,依次查找这些路径

/home/project/about/node_modules/x /home/project/node_modules/x /home/node_modules/x /node_modules/x

2) 如果x是文件,依次查找下列文件,只要其中有一个存在,就返回该文件,不再执行。
x x.js x.json x.node

3) 如果x是目录,依次查找目录下面文件,只要其中有一个存在,就返回该文件,不再执行。
x/package.json x/index.js x/index.json x/index.node

3,如果情况如下:
require('/x')或者require('./x')或者require('../x')
首先确定x所在的绝对路径。
1) 如果x是文件,依次查找下列文件,只要其中有一个存在,就返回该文件,不再执行。
x x.js x.json x.node

2) 如果x是目录,依次查找目录下面文件,只要其中有一个存在,就返回该文件,不再执行。
x/package.json x/index.js x/index.json x/index.node

【Node.js中require加载文件原理】

    推荐阅读