Обновление до create-react-app версии 4.0 с react-app-rewired: ошибка запуска сервера

#reactjs #decorator #create-react-app #mobx #react-app-rewired

#reactjs #декоратор #create-react-app #mobx #react-app-rewired

Вопрос:

Я искал в Интернете и нигде не могу найти упоминания об этой ситуации, хотя это не должно быть редкостью.

Я использовал create-react-app (версию 3.4.x) с react-app-rewired [в первую очередь для того, чтобы включить поддержку декоратора (для MobX) без извлечения].

Недавно я попытался перейти cra на последнюю версию (4.0), следуя инструкциям, выполнив эту команду:

 yarn add --exact react-scripts@4.0.0
  

Однако теперь при запуске моего сервера React я получаю эту ошибку:

 yarn start
yarn run v1.22.5
$ HTTPS=true BROWSER=none react-app-rewired start --env=local
Cannot read property 'use' of undefined
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
  

Если я удалю react-app-rewired и изменю сценарий запуска обратно на использование react-scripts , сервер запустится, но у меня больше нет поддержки декоратора.

Вопросы: Поддерживает ли react-app-rewired поддержка cra 4.0? Существует ли альтернативное решение для включения декораторов без извлечения? Спасибо за любой вклад!

Комментарии:

1. Привет @mjh! Вы нашли решение ошибки запуска сервера?

2. Любые другие обновления по этой проблеме?

Ответ №1:

У меня нет ответа на rewired вопросы, но в MobX 6 есть новая вещь, которая, вероятно, позволит вам полностью отказаться от декораторов, makeAutoObservable :

 import { makeAutoObservable } from "mobx"

class Store {
  // Don't need decorators now
  string = 'Test String';

  setString = (string) => {
    this.string = string;
  };

  constructor() {
    // Just call it here
    makeAutoObservable (this);
  }
}
  

Подробнее здесь
https://mobx.js.org/migrating-from-4-or-5.html и https://mobx.js.org/react-integration.html

Комментарии:

1. Спасибо, это полезно и направление, в котором нам, возможно, придется пойти. Я думал, что декораторы были довольно крутыми.