uni-app
uni-app copied to clipboard
[QA] 编写 `webpack v4 Plugin` 时,如何从 `compilation.assets` 中获取 `wxml` 的Source进行 Update?
问题描述
我在编写一个 webpack Plugin
来对生成后的 wxml
,js
和wxss
进行二次处理,现在 js
和 wxss
是可以正常获取到的,
可是 compilation.assets
中获取不到任何的 wxml
。
同时本人看了一些源码之后,发现 wxml
似乎不是在 Plugin
中生成的。
特此想问一下uni-app 团队们,寻找一些解决方案。
复现步骤
apply (compiler: Compiler) {
// @ts-ignore
compiler.hooks.compilation.tap(pluginName, (compilation) => {
compilation.hooks.optimizeChunkAssets.tapPromise(
pluginName,
async (_chunks) => {
const chunks: Chunk[] = _chunks as unknown as Chunk[]
for (let i = 0; i < chunks.length; i++) {
const chunk = chunks[i]
const chunkFiles = chunk.files
for (let j = 0; j < chunkFiles.length; j++) {
const file = chunkFiles[j]
const originalSource = compilation.assets[file]
console.log(file)
}
}
}
)
})
}
我后来的解决方案,还是在 compilation
的 optimizeChunkAssets
和 compiler
的 emit
进行处理了
不知道官方最佳实践有何推荐?