decorate
не работает из-за того, как Babel 7 преобразует свойства класса.
Babel 7
class Foo {
value = 1;
}
// =>
class Foo {
constructor() {
Object.defineProperty(this, "value", {
configurable: true,
enumerable: true,
writable: true,
value: 1
});
}
}
Вам необходимо настроить @babel/plugin-proposal-class-properties
плагин, чтобы использовать режим loose
для его преобразования таким же образом, как это делает Вавилон 6.
.babelrc
{
"plugins": [
[
require('@babel/plugin-proposal-class-properties').default,
{
loose: true
}
]
]
}
Вавилон 6
class Foo {
value = 1;
}
// =>
class Foo {
constructor() {
this.value = 1;
}
}