javascript – nodeJS require.path解决问题

前端之家收集整理的这篇文章主要介绍了javascript – nodeJS require.path解决问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图要求一个文件相对而神秘地发生以下情况

这很好,它指向/Users/marcos/Desktop/Taper/lib/utils.js

myPath = "/Users/marcos/Desktop/Taper/lib/./utils";
require(myPath);

这不只是它应该指向完全相同的文件

require.paths.unshift("/Users/marcos/Desktop/Taper/lib")
require("./utils"); //Doesn't work with './'
require("utils"); //Works Fine

任何人都知道为什么我不能使用./在这种情况下加载路径,因为

require("path").resolve("/Users/marcos/Desktop/Taper/lib","./utils")

结果是:

"/Users/marcos/Desktop/Taper/lib/utils"

无论如何?

提前致谢

解决方法

更新:

documentation

A module prefixed with '/' is an absolute path to the file. For
example,require('/home/marco/foo.js') will load the file at
/home/marco/foo.js.

A module prefixed with './' is relative to the file calling require().
That is,circle.js must be in the same directory as foo.js for
require('./circle') to find it.

Without a leading ‘/’ or ‘./’ to indicate a file,the module is either
a “core module” or is loaded from a node_modules folder.

If the given path does not exist,require() will throw an Error with
its code property set to 'MODULE_NOT_FOUND'.

这是原始的答案,它是指require.paths(不再支持):

documentation

在节点中,require.paths是一个字符串数组,它们表示当前缀’/’,’./’或’../’时要搜索模块的路径.

(强调我的)

猜你在找的JavaScript相关文章