File(文件)模块是从文件系统加载的模块。我们可以使用绝对路径,相对路径或 node_modules
目录来引用文件模块。Node支持Windows样式的文件路径。在Windows上,Node允许斜杠和反斜杠字符(/和\)互换使用。
绝对路径
以斜杠(/)开头的模块名称被视为绝对路径。例如: require(“/some/path/foo");
加载文件模块 foo
使用绝对路径。
示例模块路径在Windows上有效
require("/some/path/foo"); require("C:/some/path/foo"); require("C:\\some\\path\\foo"); require("\\some/path\\foo");
相对路径
以一个或两个点(.或..)开头的模块路径被称为相对路径。它们被认为是与调用require()有关的文件。
以下代码显示了相对模块路径的三个示例。
require("./foo");
从与调用脚本相同的目录加载foo
。require("../foo");
从父目录加载foo
。require("./sub/foo");
从调用脚本的目录的子目录sub加载foo。
注意
如果模块路径不对应于核心模块、绝对路径或相对路径,则Node将开始在 node_modules
文件夹中进行搜索。Node从调用脚本的父目录开始,并附加 /node_modules
。如果找不到模块,则Node沿目录树向上移动一级,追加 /node_modules
,然后再次搜索。
重复此模式,直到找到模块或达到目录结构的根目录。如果Node无法找到匹配项,则抛出一个错误。
文件扩展处理
如果require()没有找到完全匹配,它会尝试添加 .js
, .json
和 .node
文件扩展名。
.js文件视为JavaScript源代码
.json文件作为JSON源
.node文件被视为编译的附加模块