【问题标题】:How to package assets with a node module如何使用节点模块打包资产
【发布时间】:2016-08-17 04:07:42
【问题描述】:

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

【问题讨论】:

    标签: node.js commonjs


    【解决方案1】:

    打包模块时,您可以使用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 };
    

    【讨论】:

    • 谢谢,@duncanhall。我会试一试。听起来是正确的做法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2014-07-07
    相关资源
    最近更新 更多