为什么我无法将回调注册到“normal-module-loader”

时间:2016-06-08 14:40:42

标签: javascript webpack

在我的Webpack配置中,我使用的是UglifyJsPlugin,它将回调注册到“normal-module-loader”,并在其中设置context.minimize = true。我想将它设置为false,所以我在配置中写了另一个插件:

    plugins: [
        ...
        {
            apply: compiler => {
                console.log('apply was called');
                compiler.plugin('normal-module-loader', (context) => {
                    console.log('callback was invoked');
                    context.minimize = false;
                });
            }
        }

但回调永远不会被调用,我不知道为什么。当我将回调注册到其他一些事件(例如“完成”)时,它会被调用,只有这个“普通模块加载器”才会被调用。

有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:2)

您似乎需要先访问Compilation实例。

plugins: [
    ...
    {
        apply: compiler => {
            console.log('apply was called');
            compiler.plugin('compilation', compilation => {
                compilation.plugin('normal-module-loader', (context) => {
                    console.log('callback was invoked');
                    context.minimize = false;
                });
            });
        }
    }