создание плагина webpack неопределенные параметры - PullRequest
0 голосов
/ 11 июня 2018

Я работаю над созданием тестового плагина 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'
            }),
...

Проблема в том, что он печатает «undefined» вместо опцииобъект.Я помещаю console.log в конструктор и получаю правильный результат:

{testOption: 'опция проверки'}

, но я не могу получить доступэто в методе apply, и он возвращает undefined.Что я делаю не так, что не могу получить доступ к этому контенту?Я пытался изменить «emit» на другие вещи, такие как «done», и все равно получаю тот же результат.

1 Ответ

0 голосов
/ 11 июня 2018

Я нашел ответ, сфера была неправильной.Я пытался получить доступ к опциям через «this» внутри внутренней функции, изменяя область действия «this».перемещение его за пределы функции compiler.plugin исправило это.

И наоборот, изменение

function(){ ... }

на

() => { ... } 

также исправляетвыпуск

...