nodejs中require函数详解

nodejs中require函数原理详解

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

require('x')

分析其查找顺序:

1,如果x是内置模块 (比如:require("http"))

   a.从node系统模块查找

2,如果x不是内置文件

   a.首先确定x的路径可能是下面这些路径,依次查找这些路径

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

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

x
x.js
x.json
x.node

    c.如果x是目录,依次查找目录下面文件,只要其中有一个存在,就返回该文件,不再执行。

x/package.json
x/index.js
x/index.json
x/index.node

3,如果情况如下:

require('/x')或者require('./x')或者require('../x')

首先确定x所在的绝对路径。

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

x
x.js
x.json
x.node

    b.如果x是目录,依次查找目录下面文件,只要其中有一个存在,就返回该文件,不再执行。

x/package.json
x/index.js
x/index.json
x/index.node

猜你喜欢

转载自yuyongkun4519.iteye.com/blog/2413054