webpack插件创建未定义选项

时间:2018-06-11 08:18:31

标签: javascript webpack webpack-plugin

我正在构建测试webpack插件。我有以下代码:

module.exports = class TestPlugin{
    constructor(options){
        this.options = options;    
    }

    apply(compiler){
        compiler.plugin("emit", function(){
            console.log(this.options);
        })
    }
}

在我的webpack.config.js文件中,我有以下内容:

const TestPlugin = require('./plugins/TestPlugin');
...  
plugins: [
            new TestPlugin({
                testOption:'testing option'
            }),
...

问题是它的打印"未定义"而不是选项对象。我在构造函数中放了一个console.log,得到了正确的结果:

  

{testOption:'测试选项'}

但我似乎无法在apply方法中访问它,并返回undefined。我无法访问此内容的错误是什么?我试着改变" emit"其他事情,比如"完成"我仍然得到相同的结果。

1 个答案:

答案 0 :(得分:0)

我找到答案,范围错了。我试图通过改变“this”范围的内部函数中的“this”来访问选项。将它移到compiler.plugin函数之外修复它。

相反,改变

function(){ ... }

() => { ... } 

还解决了问题