Если вы похожи на меня, вероятно, вам нужны декораторы для вашего приложения create-react-app. Нет простого и понятного способа сделать это, не извлекая приложение, так что это именно то, что я собираюсь пройти в этом посте.
Шаг 1
npm run eject
Вы заметите, что в вашем дереве каталогов появилась пара папок. Один из них - это / config, который содержит конфигурацию файла Webpack, который мы ищем.
Шаг 2
Добавьте в приложение устаревший плагин babel для декораторов преобразования
yarn add babel-plugin-transform-decorators-legacy
Добавьте полужирную строку в /config/webpack.config.dev.js вокруг строки 162. Обязательно проделайте то же самое с /config/webpack.config.prod.js, иначе приложение не построится.
// Process JS with Babel. { test: /\.(js|jsx)$/, include: paths.appSrc, loader: require.resolve(‘babel-loader’), options: { plugins: [‘transform-decorators-legacy’], // This is a feature of `babel-loader` for webpack (not Babel itself). // It enables caching results in ./node_modules/.cache/babel- loader/ // directory for faster rebuilds. cacheDirectory: true } },
Шаг 3
Теперь вы можете полностью использовать декораторы
import {withRouter} from ‘react-router’ @withRouter class MyComponent extends …
Наслаждаться!