Webpack加载程序-在加载程序内部创建和写入文件

时间:2019-08-22 21:05:49

标签: javascript webpack webpack-loader

标题的含义差不多。我想在项目中的每个javascript文件旁边创建一个元数据文件。因此,我需要一个完全不改变内容的webpack加载器,仅提取一些元数据并将其写入文件中。最好的方法是什么? fs.writeFileSync似乎工作正常,但是我不知道是否应该使用它,因为似乎some webpack guides建议使用webpack内存文件系统memory-fs之类的东西。

1 个答案:

答案 0 :(得分:0)

因此,这花了一段时间才发现,并且似乎很少提及,但是webpack加载器实际上有专门用于此目的的方法this.emitFile。这是一些示例用法:

function extractMeta(content) {
    // extract and return metadata for file
}

module.exports = function(content) {
    console.log('extracting metadata and writing to file');

    // get source filename, strip file extension and append ".meta"
    const filename = this.resourcePath.split('/').pop().split('.')[0] + '.meta'

    this.emitFile(filename, extractMeta(content));
    return content; // return the source file unchanged
};