Аннотации метода mobx и порядок плагинов babelrc - PullRequest
0 голосов
/ 03 июня 2018

пытаясь использовать декораторы с Mobx в JS и как только пытаюсь использовать декораторы уровня метода, я получаю:

"Синтаксическая ошибка: у метода есть декораторы, поместите плагин декоратора перед классами один".

пример кода:

class TestStore {
    constructor(rootStore) {
        // we inject the rootStore to get other child stores if needed
        this.rootStore = rootStore
    }

    @observable fileList = [];
    @observable processedFile = null;

    @action doSomething() {
        console.log("work work");
    }
}

Сама ошибка очень хорошо задокументирована в Интернете, но проблема в том, что у меня правильная конфигурация на месте .... см. Мой .babelrc

{
 "presets": [
  "env"
 ],
 "plugins": [
   "transform-decorators-legacy",
   "transform-class-properties"
 ]
}

Я пытался удалить предустановку "env", потому что я думал, что кто-то другой вводит преобразование класса, но это ничего не меняет.

Чтобы это работало с (последней) командой create-реагироватьприложение я установил babelrc: true в webpack.config.dev только для тестирования.Не хочу, чтобы изгнать.Для уточнения: Декоратор-трансформер определенно подобран.В противном случае вы получите другую ошибку.

Я сейчас не знаю, что еще делать.

1 Ответ

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

Двойная ссылка верна.Вы просто не можете легко добавить декораторы для создания-реакции-приложения.Если вы исправите файл webpack.config.dev.js и установите babelrc: true , вы можете поместить свой собственный файл .babelrc в корневой каталог проекта, и он будет обнаружен, но все же есть проблемы с упорядочением плагинов, потому что каким-то образомопределенный плагин загружается «слишком поздно».Некоторые другие плагины уже были загружены, которые мешают плагину декоратора.

На это есть хакерский ответ.Вы можете поместить плагинов: ["transform-decorators-legacy"] Прямо внутри webpack.config.dev.js.Этот способ заказа в порядке.Но это не очень хорошее решение, потому что переопределение библиотек в npm_modules всегда плохо.

В долгосрочной перспективе я буду извлекать или использовать rewired.

...