>我正在尝试捆绑一个 Web 应用程序清单文件,但它引用了我也希望通过 webpack 解决的图像资产:
manifest.webmanifest
{
"icons": [
{
"src": "<%= require('./icons/icon-72x72.png') %>"
}
]
}
我已file-loader
配置为加载.png
资产,以便生成的src
将是该资产的 URL。
在我的主 HTML 模板中,我像这样加载它:
<link rel="manifest" href="<%= require('./manifest.webmanifest') %>">
我为此使用了html-webpack-plugin
,它将 HTML 模板视为 EJS 并正确解析require()
,因此没有问题。我的问题是我想对manifest.webmanifest
文件做同样的事情,但我不知道什么加载程序(如果有的话(可以实现与html-webpack-plugin
相同的结果。
我已经尝试了ejs-loader
,html-webpack-plugin/lib/loader?force
,val-loader
和file-loader
的各种组合,但它总是失败,因为require()
永远不会被webpack解决。
我需要编写自己的 webpack 插件/加载器吗?我是否必须调用"子编译器"(不管是什么(才能捆绑 PNG 资产?这些高级功能的 webpack 文档不是很清楚。
对于我的特定用例(捆绑 Web 应用程序清单和所有引用的图像资产(,我可以按照 Ifaruki 在评论中的建议使用 webmanifest-loader。
但是,我仍然对任何文件类型的通用解决方案感兴趣,而不仅仅是.webmanifest
类型的文件。如果我想出一个解决方案,我会把它包括在这里。