我正在将我的个人插件升级到 Webpack5,虽然事情进展顺利;我一直在努力思考如何正确更改资产中期构建的来源。
我知道 Webpack5 对资产挂钩的更改,并且需要在 processAssets 挂钩/适当的阶段进行更改。
compilation.hooks.processAssets.tap(
{
name: 'BobRoss',
stage: compilation.PROCESS_ASSETS_STAGE_ADDITIONAL,
additionalAssets: true
},
(assets) => {
// ... logic here ...
}
);
然而,我不明白的是实际资产的源道具、函数或缓存字符串?
例如,要更改未缩小的 JS 资产的来源,我只能通过以下方式获得成功:
assets[i] = {
source: () => 'the change';
};
但是,如果该资产被缩小,我只能通过以下方式获得成功:
assets[i]._chachedSource = 'the change';
这有点奇怪,但我想我们可以解决这个问题..
但随后进入 HTML 资产,无论是否缩小,只有在以下情况下才有效:
assets[i]._value = 'the change';
所以,我越来越觉得我错过了一些明显的 API 方法,用于一致地更改资产的来源,并且我正在添加故障点而不是解决方案。谁能指出我正确的方向或给我一个更好的方法的想法?
谢谢!