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加载文件原理】