Я недавно работал на Выпуск на Создать ract app (CRA), для которого мне нужно было понять базовый контрольный поток CRA. Дэн Абрамов Был достаточно добрый, чтобы дать мне очень подробный обзор того, что происходит и я, хотя он будет полезен для потенциальных участников, а также экономит ему большую неприятности, если я могу записать все, что сообщите в этом сообщении в лучшем виде в лучшем способность.
Все мясо CRA в основном живет в пакете под названием React-Scripts Отказ Он устанавливается как зависимость в папке Node_Modules вашего приложения. Этот пакет содержит скрипты для здания, тестирования, запуск вашего приложения. Сценарий Bin несет ответственность за вызование соответствующих скриптов. Когда вы выполняете NPM, установите в корневой папке вашего приложения, NPM создает SymLink в папке Node_Modules/.bin к React-Script.js, чтобы он мог быть непосредственно использован из CLI. Проекты, созданные с использованием CRA, используйте эти скрипты Чтобы проверить, запустить и создать приложение.
Существует несколько способов, которыми CRA можно использовать для создания вашего реагированного проекта:
# 1 Ноль конфигурации с настройкой по умолчанию
Вся цель CRA заключалась в том, чтобы помочь производить реагированные приложения без предварительно определенной конфигурации, чтобы разработчики могли сосредоточиться в первую очередь на «реакстрационной» части приложения, а не проводить часы, изучающие и исследования о различных параметрах конфигурации, доступны и еще не заканчиваются с чем-то, что касается их потребностей. Сохранение этого, CRA в первую очередь сделана, чтобы быть не настраиваемым. Повышение использования этого метода заключается в том, что все обновления для сценариев React-Scripts в репозитории вверх по течению могут быть легко интегрированы в ваш проект. Это представляет собой одну экстремальную часть спектра.
# 2: Используя извлечение
Другой конец спектра – очень резкий способ настроить конфигурацию CRA.
- Этот метод может использоваться запуском NPM-запуска, который выполняет сценарий под названием eject.js Внутри пакета React-Scripts.
- Это удаляет зависимость в React-Scripts от вашего проекта полностью и копирует все сценарии и файлы конфигурации прямо в ваш проект как отдельные зависимости, такие как Babel, WebPack и т. Д.
- Package.json вашего приложения также переписан, поскольку React-Scripts больше не существует и, следовательно, быть в состоянии запустить, тестировать и создавать приложение, мы вкладываем все эти скрипты в сценарии/так, чтобы их можно было бы ссылаться в Объект сценариев в Package.json
- Основным недостатком этого является то, что после того, как ваш извлек ваших скриптов, он не может быть отменен, и вы все на своем собственном – управление своими собственными зависимостями и файлами конфигурации – вы не можете воспользоваться обновлениями, которые приходят в React-Scripts со временем
# 3: Среднеземныйлог – используя вилки
Если вы хотите только настроить вашу CRA CONFIFT только немного, затем извлеките ваши скрипты, является крайней мерой с большим количеством пониженных условий. Еще одна альтернатива тем, что является создание собственной вилки React-Scripts и используйте это в вашем приложении. Шаги делают так, как следующие:
- Fork React-Scripts & Tweak Конфигурация, чтобы соответствовать вашим потребностям. Давайте назовем новую вилку как React-Scripts-Fork. Измените имя в Package.json Реактивные скрипты
- Опубликовать свои racted-scripts-fork до NPM
- Создайте свое приложение raction, используя
$ create-react-app my-app --scripts-version react-scripts-fork
- Это установит ваши настраиваемые React-Scripts в Node_modules/каталог вашего приложения
- Все остальное, как NPM Start, NPM Test, NPM Run Build Works Works, как это делает с помощью React-Scripts из коробки
- Этот опыт этого подхода – вы не все самостоятельно с конфигами и зависимостями повсюду повсюду
- Недостатком является то, что вам нужно поддерживать его самостоятельно и слияние от вышеупомянутых вручную
В качестве примера вы можете посмотреть на Пакет NPM называется Custom-React-Scripts Что касается наиболее распространенных запросов на то, что отсутствует в CRA.
P.S.- Большинство из того, что написано выше, в Дэн слова, и я просто пытался создать суть всего, что я понял. Надеюсь это поможет!
Этот пост был первоначально опубликован на medium.com
Оригинал: “https://dev.to/shubheksha/tweaking-configuration-for-react-scripts-in-create-react-app-bco”