提问者:小点点

更改模块路径


如何更改required()用于在其中查找模块的路径?我尝试这样做:
在node.js中为require设置一个路径
,但没有工作,因为process.env.node_path未定义。

编辑:我认为我误解了node_path的用法。在哪里可以找到require()函数的代码?


共1个答案

匿名用户

您所尝试的应该可以正常工作:

var currentNodePath = process.env.NODE_PATH;
process.env.NODE_PATH = directoryYouWant;
//do stuff then change it back
process.env.NODE_PATH = currentNodePath;

如果process.env.node_path为空,那么。。。要么是您的节点安装有问题,要么您可以安全地忽略它(我猜不需要备份它)。

至于require()函数实现的位置:从github拉出一个节点,经过一些搜索,似乎是这个位置:node/lib/internal/modules/cjs/helpers.JS(就JS文件中使用的frontendrequire函数而言,内部结构可能在C源代码中的某个地方,但不确定)。