require根据参数不同格式,加载不同路径去寻找模块文件.

  1. 如果参数字符串以"/"开头,则表示加载的是一个位于绝对路径的模块文件.

  2. 如果参数字符串以"./"开头,则表示加载的是一个位于相对路径(相对于当前执行脚本的位置相比)的模块文件

  3. 如果参数字符串不以"./"或"/"开头,则表示加载的是一个默认提供的核心模块(位于Node的系统安装目录中),或者一个位于各级node_modules目录的已安装模块.

上述引述自JavaScript标准参考教程,前两种情况比较好理解,在此对第三种情况进行进一步探讨.

图片描述
如上图所示,无论是采用方案一还是方案二,均不会加载根目录下的mymodule.js文件,可见第三种情况下,只会加载node_modules目录下的文件.

图片描述
如上图所示,在node_modules目录下新增mymodule.js文件,无论是采用方案三还是方案四,都可以加载到mymodule.js文件.此时进一步思考,假如在node_modules文件夹下面,有一个同名的文件夹模块呢?

图片描述


Zuckjet
437 声望658 粉丝

学如逆水行舟,不进则退。


下一篇 »
Java数组