一起使用file-loader和html-loader

时间:2016-05-02 21:35:13

标签: webpack webpack-html-loader webpack-file-loader

我正在开发一个角度应用程序,它需要将html个文件作为纯HTML文件提取,同时应检查是否需要这些图像(作为资源)<img src="...">。此外,图像基于根路径(所以/images/something.png),它们需要相对于webpack context设置(基本路径)进行解析。

我怎样才能做到这一点?无法让html-loader与文件加载器很好地协同工作。由于前者输出一个JS文件(带有require语句),后者需要一个普通的HTML文件。

1 个答案:

答案 0 :(得分:8)

我自己通过挖掘有问题的加载器的源代码找到了解决方案。

基本上,它默认不起作用,因为file-loader需要一个“原始”文件,所以如果你想输出一个HTML文件,你需要有html源代码,而不是JS代码。但是,html-loader接受一个HTML文件并输出一个JS文件(带有require资产和内容)。

解决方案是深度隐藏和奇妙的extract-loader解析来自html-loader的JS,将其转换回普通html,资产仍然需要替换为< strong> with hash for cachebusting 。

这很完美,你将输出传递给文件加载器,你终于得到了你的html文件!

配置示例

就我而言,我的加载程序配置如下:

'file-loader!extract-loader!html-loader' + '?root=' + encodeURIComponent(sourcePath.toString())