У меня есть проект, написанный на ES6 с веб-пакетом в качестве сборщика. Большая часть транспилирования работает нормально, но когда я пытаюсь включить декораторы где угодно, я получаю эту ошибку:
Decorators are not supported yet in 6.x pending proposal update.
Я просмотрел трекер ошибок babel и не смог найти там ничего, поэтому предполагаю, что использую его неправильно. Конфигурация моего веб-пакета (соответствующие биты):
loaders: [
{
loader: 'babel',
exclude: /node_modules/,
include: path.join(__dirname, 'src'),
test: /\.jsx?$/,
query: {
plugins: ['transform-runtime'],
presets: ['es2015', 'stage-0', 'react']
}
}
]
У меня нет проблем ни с чем, стрелочные функции, деструктуризация - все работает нормально, это единственное, что не работает.
Я знаю, что всегда могу перейти на babel 5.8, где он работал некоторое время назад, но если есть способ заставить это работать в текущей версии (v6.2.0), это поможет.
presets
.Ответы:
Этот плагин Babel работал у меня:
https://github.com/loganfsmyth/babel-plugin-transform-decorators-legacy
.babelrc
или
Webpack
React Native
С
react-native
необходимо использоватьbabel-preset-react-native-stage-0
плагин вместо этого..babelrc
Пожалуйста, просмотрите этот вопрос и ответ для полного объяснения.
источник
development
.production
а такжеenv
вообще помещать это в блок? Вы можете бытьplugins
братомpresets
transform-class-properties
, а babeljs.io/docs/plugins/transform-class-properties , а также убедитесь , что наследие плагин перед преобразованием класса плагин в соответствии с Документами github.com/loganfsmyth/babel-plugin- transform-decorators-legacyПроведя 5 минут в чате babeljs Slack, я обнаружил, что в текущей версии babel (v6.2) декораторы не работают. Единственное решение, по-видимому, сейчас - понизить рейтинг до 5,8.
Также кажется, что они переместили свой трекер проблем с github на https://phabricator.babeljs.io
Я все это записываю, так как после нескольких часов поисков я обнаружил, что текущая документация очень скудна и отсутствует.
источник
Только установка
babel-plugin-transform-decorators-legacy
у меня не сработала (у меня есть конфигурация, использующая энзим вместе с кармой). Оказывается, установкаtransform-class-properties
: transform-class-properties, а также проверка того, что устаревший плагин находится до того, как плагин класса преобразования в соответствии с документами в transform-decorators-legacy, наконец, заставили его работать для меня.Я тоже не использую
.babelrc
файл, но добавление его в свойkarma.conf.js
файл помогло мне:Еще добавил в свои загрузчики:
источник
Вам просто нужен плагин декораторов преобразования: http://babeljs.io/docs/plugins/transform-decorators/
источник
Если вы обновили свой проект с Babel 6 до Babel 7, вы хотите установить
@babel/plugin-proposal-decorators
.Если вы хотите поддерживать устаревшие декораторы, используемые в Babel 5, вам необходимо настроить
.babelrc
следующие параметры:Убедитесь, что это было
@babel/plugin-proposal-decorators
раньше,@babel/plugin-proposal-class-properties
если вы используете последнее.источник