65 lines
2.6 KiB
Markdown
65 lines
2.6 KiB
Markdown
---
|
||
Тип: Проект
|
||
Статус: Запущен
|
||
Название: ksv741-react-scripts
|
||
Описание: npm-пакет — аналог create-react-app с возможностью расширять конфигурацию Webpack
|
||
Начат:
|
||
Завершён:
|
||
Технологии:
|
||
- JavaScript
|
||
- Webpack
|
||
Теги:
|
||
- npm
|
||
- webpack
|
||
- react
|
||
- tooling
|
||
- create-react-app
|
||
Репозиторий: https://github.com/ksv741/react-scripts
|
||
Ссылка: https://www.npmjs.com/package/ksv741-react-scripts
|
||
---
|
||
|
||
# ksv741-react-scripts
|
||
|
||
[](https://www.npmjs.com/package/ksv741-react-scripts)
|
||
|
||
## 🎯 Проблема и цель
|
||
`create-react-app` не даёт гибко управлять конфигурацией Webpack без `eject`. Проект создан исключительно в учебных целях: разобраться, как устроены tooling-пакеты, и попрактиковаться в написании и оптимизации конфигурации Webpack.
|
||
|
||
---
|
||
|
||
## 🔍 Аналоги
|
||
Аналоги не подошли по причине учебной мотивации — цель была самостоятельно пройти путь создания tooling-пакета.
|
||
|
||
| Проект | Ссылка | Почему не подошёл |
|
||
|--------|--------|-------------------|
|
||
| create-react-app | https://github.com/facebook/create-react-app | Закрытая конфигурация, нет расширяемости без eject |
|
||
| craco | https://github.com/dilanx/craco | Готовое решение, не учебное |
|
||
|
||
---
|
||
|
||
## ⚙️ Архитектура
|
||
**Стек:** JavaScript, Webpack, React
|
||
|
||
**Ключевые решения:**
|
||
- Публичный API для расширения конфигурации Webpack пользователем
|
||
- Разделение dev/prod конфигов
|
||
|
||
---
|
||
|
||
## 📋 Функциональность
|
||
- [x] Сборка React-приложения через Webpack
|
||
- [x] Возможность расширять конфигурацию без eject
|
||
- [x] Публикация пакета на npm
|
||
|
||
---
|
||
|
||
## 🧠 Что узнал / выводы
|
||
- Устройство tooling-пакетов на примере react-scripts
|
||
- Оптимизация и структурирование конфигурации Webpack
|
||
- Как организовать расширяемый публичный API для конфигурации
|
||
|
||
---
|
||
|
||
## 🔗 Связанные заметки
|
||
- [[rspack-dev-server-waitpage]]
|