Как лучше создать вебпак, какое преимущество создавать его в ручную?
Всегда создаю вебпак, командой create-react-app. Также знаю его можно создать в ручную шаг за шагом, вопрос, какой смысл создавать его в ручную? слышала, что create-react-app, добавляет лишние зависимости.
Ответы (1 шт):
Преимущества 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. Если что-то серьезное нужно написать который будет расширяться, то выбираю конфигурацию с вебпаком.