如何使用节点模块打包资产

时间:2016-08-16 18:51:34

标签: node.js commonjs

我试图在节点模块(模块B)中包含一些模拟数据,然后能够从调用模块(模块A)引用该数据。数据是模块B的/data目录中的文本文件。我在模块B上有一个函数,它使用__dirname调用数据,但是当从模块A调用此函数时,__ dirname引用该目录模块A ......不是模块B. 什么是包含这样的资产数据并在消费模块中提供的最佳方式?

1 个答案:

答案 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 };