65 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
Тип: Проект
Статус: Запущен
Название: 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
[![npm downloads](https://img.shields.io/npm/dm/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]]