我正在使用webpack和文件加载器来解析import/require()
为url。问题是我需要一种机制,在运行时使用注入浏览器的方法来更改该url。因此,在运行时,我window.changeAssetPath(existingPath)
需要为交付给用户的每个静态文件执行类似的方法。我检查了文件加载器的配置,发现有一个名为的设置postTransformPublicPath
。所以我试图这样使用它:
module.exports = {
module: {
rules: [
{
test: /\.(png|jpg|gif)$/i,
loader: 'file-loader',
options: {
postTransformPublicPath: (p) => { return window.changeAssetPath(p) },
},
},
],
},
};
但是window
在webpack构建期间未定义,因此构建失败。您知道我的问题的解决方案吗?
解决的办法是对函数调用进行字符串化处理。所以这应该工作:
{
test: /\.(png|jpg|gif)$/i,
loader: 'file-loader',
options: {
postTransformPublicPath: (p) => { return "window.changeAssetPath(" + p + ")" },
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句