DanielSchaffer/webpack-babel-multi-target-plugin

htmlWebpackPluginAlterAssetTags is undefined

Opened this issue · 8 comments

eolme commented

I can't figure out what's wrong, but I have an error:

htmlWebpackPluginAlterAssetTags is undefined

here:

compiler.hooks.compilation.tap(plugin_name_1.PLUGIN_NAME, (compilation) => {
    if (compilation.name) {
        return;
    }
    compilation.hooks.htmlWebpackPluginAlterAssetTags.tapPromise(`${plugin_name_1.PLUGIN_NAME} add safari nomodule fix tags`, (htmlPluginData) => __awaiter(this, void 0, void 0, function* () {
        const element = this.inject === babel_multi_target_options_1.SafariNoModuleFixInject.body ? htmlPluginData.body : htmlPluginData.head;
        element.unshift(this.createSafariNoModuleFixTag());
        return htmlPluginData;
    }));
});

Trace:

TypeError: Cannot read property 'tapPromise' of undefined
    at C:\Repo\org\test\node_modules\@mntm\scripts\node_modules\webpack-babel-multi-target-plugin\dist\src\safari-nomodule-fix\safari.nomodule.fix.plugin.js:107:63
    at SyncHook.eval [as call] (eval at create (C:\Repo\org\test\node_modules\@mntm\scripts\node_modules\tapable\lib\HookCodeFactory.js:19:10), <anonymous>:99:1)
eolme commented

deps:

{
  "html-webpack-plugin": "^4.5.1",
  "webpack": "^4.45.0"
}

config:

{
  safari10NoModuleFix: {
    mode: 'inline',
    inject: 'head',
    minify: true
  }
}

Well, this is due to html-webpack-plugin v4 changed the way of calling hooks. It's likely to be fixed in #86

eolme commented

What version is currently compatible?

html-webpack-plugin v3

eolme commented

Thanks

@Austaras html-webpack-plugin@^4.0.0 should be supported as of 2.5.0 via #55

@eolme if this is breaking on webpack-babel-multi-target-plugin@2.5.0 and html-webpack-plugin@^4.0.0, then it's a bug and this should be open.

@DanielSchaffer yes this should be open. The bug is simple: safari fix plugin isn't updated in #55

Are there any updates on this?