需要跨模块的相对路径

时间:2016-06-02 09:46:18

标签: node.js path fs

我的项目A在其根目录中有config.json个文件。该项目依赖于外部模块B,调用B.setConfig('./config.json')

B.setConfig(path)内,如果我拨打fs.existsSync(path),则说好,文件存在,但调用require(path)失败并显示Cannot find module "./config.json"

是否可以在模块B内部调整相对路径以使require有效?

我不希望以完整路径调用setConfig,因为它会使事情变得尴尬。

1 个答案:

答案 0 :(得分:0)

我最终发现,如果我们想要从模块A(称之为remotePath)获取相对路径,并在模块{{1}中require内使用它然后,为了获得模块B内的完整路径,我们可以使用以下内容:

B

var path = require('path'); var fullPath = path.join(path.dirname(process.argv[1]), remotePath); var moduleInsideA = require(localPath); // this now works 为我们提供了模块process.argv[1]启动文件,我们从中获取目录路径,然后将其与远程相对路径连接起来,然后为我们提供完整路径。