2016-08-16 38 views
2

我試圖在節點模塊(模塊B)中包含一些模擬數據,然後能夠從調用模塊(模塊A)引用該數據。該數據是模塊B的/data目錄中的文本文件。我在模塊B上有一個使用__dirname調用數據的功能,但當然,當從模塊A調用此函數時,__dirname引用模塊A的目錄。 ..不是模塊B. 將這樣的資產數據包含在消費模塊中的最佳方式是什麼?如何使用節點模塊打包資源

回答

3

打包模塊時,可以使用files property of package.json將任何資產與模塊捆綁在一起。

然後,在該模塊中,您可以使用相對路徑來引用您包含的資產。

想象一下,這個文件結構的模塊:

-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 }; 
+1

謝謝@duncanhall。我會給你一個鏡頭。聽起來是正確的做法。 –