Comments 33
Недостаток конфигурации легко обойти, react-app-rewired прекрасен.
Есть еще — custom-react-scripts — это кастомная версия react-scripts.
create-react-app my-app --scripts-version custom-react-scripts
Здесь подробнее про custom-react-scirpts — Configure create-react-app without ejecting
Здесь можно почитать офф. инфу Document maintaining a fork of react-scripts as an alternative to ejecting #682
Посмотрите тут: как прикрутить Styled-JSX и настроить абсолютные пути для импорта.
как прикрутить Styled-JSX и настроить абсолютные пути для импорта
так там нету ничего про CRA кроме ссылки на RAW
Работают относительно папки src, пример:
import MyComponent from 'components/MyComponent'
Конфигурация babel-plugin-module-resolver
['module-resolver', { 'root': ['src'] }]
Настройка WebStorm
Для папки src в контекстом меню выполнить: Mark Directory as > Resource Root.
Настройка Atom
- Установить плагин js-hyperclick.
- Для доменных компонентов прописывать в package.json путь до src:
"moduleRoots": ["../.."]
Собственно, я больше хотел обратить внимание на Styled-JSX.
Интересно почитать про велосипедостроение на тему SSR для CRA. :)
Покажите код :)
Конечно, Redux — не «rocket science», но за этим вот «выполнить экшены» — куча тех еще компромиссов и ухищрений.
"start": "cross-env NODE_PATH=src/scripts react-scripts start"
И как такие костылищи прикажете поддерживать IDE?
Красивым кодом они это еще называют.
В конце концов всё свелось к такому:
Это так классно! Из коробки можно делать почти всё! Но если вы хотите чего-то большего, то делайте eject, но если сделаете, то перестаёте обновляться, так что лучше не eject'ить. Но если всё же хотите что-то новенькое, то можете костыльнуть так и вот так и у вас будет почти то же самое, что и с CRA, но это будет работать немного не так.
Лично для меня не является аргументом
Лишние конфиги и лишний код
отсутствуют webpack.config, нет кучи *rc-файлов и зависимостей в package.json.
Не знаю как Вы, а я вот для себя сделал свой собственный шаблончик, расковыряв, помоему, ёменовский. Там у меня и все красивости и все нужные мне фичи есть. А если нужна ещё какая-то, то я просто в конфигах эту фичу поправляю. Не люблю я, когда моими конфигами заведует кто-то другой. Мне нравится когда я сам знаю как всё работает и сам настроил так, чтобы в этом моменте не было лишней информации, а в этом была нужная.
Вот еще одна, но с одним приятным отличием — сразу получаете sandbox и возможность документирования компонентов в маркдауне https://github.com/OpusCapitaBES/js-react-showroom-client

п.с. в своих проектах это всегда 1 файл.
Позволяет вынести общую часть в базовый конфиг, а в конкретных конфигах его расширять
У меня это расширение большей частью сводится к редактированию DefinePlugin
Кроме того можно настройки редко используемых(либо опциональных) плагинов вынести в отдельные файлы, и подключать/отключать одной строчкой
Например unused-files-webpack-plugin, webpack-bundle-analyzer для локальной работы/анализа
Настроенный UglifyJsPlugin только для серверных сборок
Как итог, в файле под каждое окружение находится его более конкретное описание, отличающее его от других конфигов, и при этом без if-ов в неожиданных местах
N причин, чтобы использовать Create React App