我应该如何加载我自己的模块内的文件?

/config/index.js当前代码

 const options = (require('js-yaml')).safeLoad( (require('fs')).readFileSync(`./config/default-config.yaml`, "utf8")); module.exports = options; 

工作正常。 直到我在其他项目中发布和使用它。 然后它无法find该文件(自然),因为该项目中不存在./config/default-config.yaml

我能想到的唯一选项涉及检查文件是否存在于该path,然后尝试从node_modules/@company/alpha-gamma/config/default-config.yaml加载该node_modules/@company/alpha-gamma/config/default-config.yaml 。 这看起来真的很黑。

configuration对象很大,200多个键。 我不认为它属于代码。

加载模块中存在的文件的最佳解决scheme是什么? 我需要能够在发布之前加载unit testing,并在另一个模块需要库时在运行时加载它。

也许最好的select是使用json因为我可以使用require模块来加载它,而不是fs

我相信你可以利用__dirname来引用存储在应用程序根目录中的文件。

如此处所述: 正确的方式来引用相对于Node.JS中的应用程序根的文件