Как использовать декораторы в приложении на стороне сервера?

У меня работает приложение (с SSR). Недавно я попытался добавить decorator служба поддержки. Я выполнил настройку, и приложение прекрасно работает, когда оно запускается в браузере (потому что код, выполняемый в браузере, передается в виде бабел).

Однако код (Компонент, содержащий декоратор) прерывается, когда он отображается на стороне сервера - Может быть потому, что выполняемый код не передается и узел не может понять @ условное обозначение.

Это он бросил ниже ошибки

   (node:1932) UnhandledPromiseRejectionWarning: SyntaxError: 
src/components/common/InputBox/InputBox.js: Unexpected token (8:0)

        import './InputBox.scss';
           7 |
        >  8 | @autobind
             | ^
           9 | class InputBox extends Component {
          10 |     constructor(props) {
          11 |         super(props);

Как я могу это исправить?

Спасибо

1 ответ

Похоже, вы не настроили поддержку декораторов. Это означает, что ваш код не преобразован, и node (который запускает ваш серверный скрипт) не знаю, как обрабатывать @foo вид кода. Декораторы на 2-м этапе (см. https://tc39.github.io/proposal-decorators/) и не являются частью языка. Если вы используете babel для преобразования своего кода, добавьте соответствующий плагин (@babel/plugin-proposal-decorators).

Другие вопросы по тегам