最近寫了個小插件報了個警告,然后去百度了一下,全都給我說extract-text-webpack-plugin這個插件有問題要更新,我也是無語了,這個插件我用都沒用,百度翻了下齊刷刷全是這個答案,搞得我都懷疑自己然后把node_modules翻了一遍確定沒有使用這個插件,后來去谷歌上搜了一下,第一條就告訴我為什么了,直白來說,webpack里的Tapable類的plugin已經廢棄了,請使用hooks api來替代,那插件的代碼怎么寫呢
<script>
// 舊的使用方法
class myPlugin {
constructor (doneCallback, failCallback) {
// 初始化
}
apply (compiler) {
var that = this;
compiler.plugin('compilation', function (compilation, options) {
compilation.plugin('htmlWebpackPluginAlterAssetTags', function (
htmlPluginData,
callback,
) {
console.log('在別人的插件勾子里做些處理');
});
});
}
}
</script>
<script>
// 新的使用方法
class myPlugin {
constructor (doneCallback, failCallback) {
// 初始化
}
apply (compiler) {
var that = this;
compiler.hooks.compilation.tap('myPlugin ', compilation => {
compilation.hooks.htmlWebpackPluginAlterAssetTags.tap('ScriptWebpackPlugin', htmlPluginData => {
console.log('在別人的插件勾子里做些處理');
});
});
}
}
</script>
這樣子就不會報警告了,看到自己寫的代碼出現警告還是挺不爽的,現在的文章好多都是過時的和復制的真的誤導人,webpack的插件鈎子在這里https://webpack.js.org/api/compiler-hooks/#aftercompile