Config dependency manager doesn't take into account all the hooks until "initialize".
webpack-bot opened this issue · 3 comments
Bug report
What is the current behavior?
I use configuration dependencies to make sure that the plugins from the second config 'server'
will always be executed after the first config 'client'
output is emitted:
module.exports = [
{
name: 'client',
plugins: [
{
apply: compiler => compiler.hooks.afterEmit.tap('Plugin1', _ => {
console.log('Config 1: afterEmit')
})
}
]
},
{
name: 'server',
dependencies: ['client'],
plugins: [
{
apply: compiler => compiler.hooks.afterResolvers.tap('Plugin2', _ => {
// I picked the "afterResolvers" hook, because i will apply here the HtmlWebpackPlugin,
// that is required to be applied before the "initialize" step.
console.log('Config 2: afterResolvers')
})
}
]
}
]
Doesn't work in the right order for the hooks like afterResolvers
(or initialize
), as seen in the console output:
Config 2: afterResolvers
Config 1: afterEmit
However, this works as expected starting from the beforeRun
hook:
Config 1: afterEmit
Config 2: beforeRun
What is the expected behavior?
Config 1: afterEmit
Config 2: afterResolvers
Other relevant information:
webpack version: 5.74.0
Node.js version: 16.17.0
Operating System: Windows 10
This issue was moved from webpack/webpack#16312 by @alexander-akait. Original issue was by @reves.
@jantimon you can move html-webpack-plugin
to official webpack-contrib
org and we start to fixing most of problems instead keeping them, thank you
@jantimon Friendly ping
Ref: #1722 (comment) - need add a test case for this use case