我试图在节点模块(模块B)中包含一些模拟数据,然后能够从调用模块(模块A)引用该数据。数据是模块B的/data
目录中的文本文件。我在模块B上有一个函数,它使用__dirname调用数据,但是当从模块A调用此函数时,__ dirname引用该目录模块A ......不是模块B.
什么是包含这样的资产数据并在消费模块中提供的最佳方式?
答案 0 :(得分:4)
打包模块时,您可以使用files
property of package.json将任何资产与模块捆绑在一起。
然后,在该模块中,您可以使用 relative 路径来引用您包含的资产。
想象一下具有此文件结构的模块:
-assets
|-data.txt
index.js
在您的 package.json 中,您可能会看到files
部分,如下所示:
files: [
'index.js',
'assets/data.txt'
]
在 index.js 中,您可以公开资产数据,如下所示:
let fs = import 'fs';
function getAssetData() {
return fs.readFileSync('./assets/data.txt')
}
module.exports = { getAssetData };