Как лучше создать вебпак, какое преимущество создавать его в ручную?

Всегда создаю вебпак, командой create-react-app. Также знаю его можно создать в ручную шаг за шагом, вопрос, какой смысл создавать его в ручную? слышала, что create-react-app, добавляет лишние зависимости.


Ответы (1 шт):

Автор решения: Randall

Преимущества CRA

  • Старт проекта с одной команды

    npx create-react-app my-app

  • Можно меньше знать о таких утилитах как webpack, babel и других зависимостях сборки и сосредоточится на React-е.

  • Только одна зависимость которую нужно поддержать react-scripts. Именно он поддерживает все ваши зависимости сборки. Его легко поддерживать и обновлять с помощью всего одной команды.

    npm install react-scripts@latest

Недостатки CRA

  • Сложно добавить пользовательские конфигурации сборки. Один из способов добавить настраиваемые конфигурации — извлечь приложение через команду eject, в таком случае мы теряем преимущество «Только одна зависимость». Другой способ вы можете использовать такие пакеты как customize-cra или react-app-rewired, но их возможности ограничены.
  • Абстрагирует абсолютно все. Важно понимать, что нужно для запуска приложения React. Но из-за преимущества «Только одна зависимость» новичок в React-е может подумать что react-scripts является единственной зависимостью, необходимой для запуска React приложений и может не знать что babel, webpack являются ключевыми зависимостями, которые используются под капотом React приложений.
  • В CRA входит некоторые npm пакеты которые вам может никогда не понадобится. К примеру поддержка SASS. Если вы используете простой CSS или LESS, то это дополнительная зависимость, которую вы никогда не будете использовать.

Преимущества билда с webpack

  • Полный контроль над вашим окружением.
  • Может легко делать пользовательские настройки, такие как module federation для микрофронтенда. В CRA пока еще такую возможность не добавили, PR все еще висит :)
  • Знание того как конфигурировать вебпак это хороший навык, которого часто требуют.

Недостатки билда с webpack

  • Только вы будете отвечать за обновление и обслуживание вебпака (некоторые версии вебпака и его некоторых плагинов не имеют обратной совместимости или совместимости с будущими версиями).
  • Конфигурация может быть пугающим и стать головной болью, особенно если вы пытаетесь научиться писать на React-е.

Исходя из опыта скажу следующее: Если нужно что-то протестировать, чисто для себя и возможностей песочницы мне не хватает, то я всегда выбираю CRA. Если что-то серьезное нужно написать который будет расширяться, то выбираю конфигурацию с вебпаком.

→ Ссылка