Javascript 如何在NodeJs中创建使用文件相对路径的函数(模块内部)
我想做的是创建像NodeJSJavascript 如何在NodeJs中创建使用文件相对路径的函数(模块内部),javascript,node.js,typescript,Javascript,Node.js,Typescript,我想做的是创建像NodeJSrequire这样的函数。您可以执行require(“./your file”)和require了解文件/your file是调用模块的同级,而无需指定文件的完整路径 我当前的问题是获取当前执行函数的目录(\uu dirname) 我试过以下方法: 调用方法与其他函数包装时,使用module.parent.fileName失败 几乎在那里,但在测试运行程序内部运行时失败(Jest) 这应该是一个简单的解决方案,也许我把它复杂化了?也许你应该使用: var path
require
这样的函数。您可以执行require(“./your file”)
和require
了解文件/your file
是调用模块的同级,而无需指定文件的完整路径
我当前的问题是获取当前执行函数的目录(\uu dirname
)
我试过以下方法:
- 调用方法与其他函数包装时,使用
失败module.parent.fileName
- 几乎在那里,但在测试运行程序内部运行时失败(Jest)
var path = require('path');
//_dirname will give you the current position
使用path包可以实现这一点 模块.parent.fileName和V8堆栈跟踪都可以正常工作,但是如果您在
index.js中导出模块
//src/index.js
const lib = require("./my-lib")
exports.myFunction = lib.myFunction
例如:
//src/my-lib.js
function myFunction(){
const path = module.parent.fileName
//do stuff
}
然后在index.js中导出上面的函数
//src/index.js
const lib = require("./my-lib")
exports.myFunction = lib.myFunction
在客户端代码中,如果从index.js
导入myFunction
,则检测到的路径将始终/src/index.js
,实际上这相当复杂,请参阅(确定模块的require
函数的上下文可能您不理解我的问题,我如何使用path
模块获取当前执行模块的目录?是的,我误解了。这可能会有所帮助
//src/index.js
const lib = require("./my-lib")
exports.myFunction = lib.myFunction