dcloudio / dcloudio/uni-app

[QA] 编写 `webpack v4 Plugin` 时,如何从 `compilation.assets` 中获取 `wxml` 的Source进行 Update?

Open
#3,230 1 comment 0 reactions 0 assignees View on GitHub
mp question
Dominant language
JavaScript
Stars
41.6k
Forks
3.7k
Avg merge
7h 6m
Merged PRs (30d)
6

Description

**问题描述**
我在编写一个 `webpack Plugin` 来对生成后的 `wxml`,`js`和`wxss` 进行二次处理,现在 `js` 和 `wxss` 是可以正常获取到的,
可是 `compilation.assets` 中获取不到任何的 `wxml`。
同时本人看了一些源码之后,发现 `wxml` 似乎不是在 `Plugin` 中生成的。
特此想问一下uni-app 团队们,寻找一些解决方案。

**复现步骤**
```ts
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)
}
}
}
)
})
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.