Об этом проекте

Marigold — это реализация Marigold Design System на React, построенная на базе react-aria для обеспечения доступности и Tailwind CSS для стилизации. Репозиторий представляет собой монорепозиторий, объединяющий библиотеку компонентов, темизацию, документацию и тестирование в одном месте. Содержимое репозитория - Папки с исходным кодом компонентов и системы, собираемые в виде пакетов; CLI-команды ссылаются на «пакеты компонентов и тем» как на цели сборки, а публикуемый npm-пакет называется `@marigold/components`. - Пакеты тем, собираемые с помощью специальной задачи `pnpm build:themes`, что позволяет сочетать один набор компонентов с различными вариантами тем. - Приложение с документацией, созданное на Next.js, которое запускается в режиме разработки через `pnpm dev` (localhost:3000) и в режиме продакшена через `pnpm start`. Оно включает таблицы пропсов компонентов, генерируемые с помощью `pnpm build:component-props` и задачи «registry». - Рабочее пространство Storybook, запускаемое командой `pnpm sb` на localhost:6006, а также тесты компонентов на базе Storybook (`pnpm test:sb`) и задача сборки Storybook. Инструментарий и проверка качества Повсеместно используется TypeScript; команда `pnpm typecheck` сначала собирает документацию, а затем выполняет проверку типов без эмиссии. Тесты запускаются на Vitest, включая проверку покрытия и вариант для CI. Линтинг разделен между ESLint для кода и Vale для текстов документации, а форматирование осуществляется с помощью Prettier с отдельными командами для проверки и исправления. Команда `clean` удаляет артефакты сборки, зависимости и кэши, такие как dist, .next, .turbo, coverage и storybook-static. Релизы Релизы не выполняются локально: рабочий процесс GitHub Actions запускает действие Changesets при каждом пуше в ветку main. Он либо открывает pull request «release: version packages», который обрабатывает ожидающие изменения, либо, после слияния, публикует обновленные пакеты в npm. Контрибьюторы добавляют changeset с помощью `pnpm changeset`, когда изменение должно привести к повышению версии. Для пререлизов используется режим pre в Changesets, зафиксированный в `.changeset/pre.json`; npm dist-tag выводится из поля tag, поэтому `pnpm changeset pre enter rc` публикует пакет с тегом «rc» вместо latest. В README отмечены два нюанса: счетчик пререлизов следует за версией в package.json, а не за тегом, а переключение канала оставляет предыдущий dist-tag закрепленным за последней версией, поэтому его следует перенаправить или удалить для каждого пакета. Локальный запуск Клонируйте репозиторий, установите зависимости с помощью pnpm и используйте таблицу команд для разработки, сборки, тестирования, линтинга, форматирования и проверки типов. В README новых пользователей направляют на сайт документации Marigold за инструкциями по установке и на страницу с примечаниями к релизам для ознакомления с последними изменениями. Проект опубликован под лицензией MIT. В README не приводятся данные о количестве компонентов, производительности или степени внедрения; эти сведения необходимо проверять на сайте документации и в реестре пакетов.