Описание тега microsoft-rush
Что такое Rush Stack?
Раш Стек - это...
- Миссия по предоставлению повторно используемых технологий для запуска крупномасштабных монорепозиториев в Интернете.
- Открытое сотрудничество между партнерами по сообществу с серьезными требованиями к инструментам, которые устали работать в одиночку.
- Конкретная стратегия , объединяющая популярные инструменты, такие как Node.js, TypeScript, ESLint, Prettier, Webpack, Jest и т. д.
- Семейство проектов , которые восполняют пробелы в этой стратегии
Хотя различные части этой работы ведутся уже много лет, теперь мы объединяем их под общей хартией как Rush Stack. Отслеживайте наш прогресс на странице новостей и дорожной карте.
Что в стеке?
Эти основные инструменты разработаны под эгидой Rush Stack :
- Rush: масштабируемый оркестратор сборки монорепозиториев
- Heft: расширяемая система сборки, взаимодействующая с Rush.
- API Extractor: координирует проверки API для пакетов библиотек и создает накопительные пакеты .d.ts.
- API Documenter: создает ваш веб-сайт с документацией по API.
- @rushstack/eslint-config: наш стандартизированный набор правил ESLint, специально разработанный для крупномасштабных монорепозиториев TypeScript.
- @rushstack/eslint-plugin-packlets: «Пакеты» — это облегченная альтернатива пакетам NPM для организации исходных файлов в рамках одного проекта.
- Rundown: инструмент для оптимизации времени запуска процессов Node.js.
Проекты построены на общей структуре повторно используемых пакетов библиотек, которая включает в себя:
- ts-command-line: строгий синтаксический анализатор командной строки, параметры / документы которого могут быть дополнены пакетами набора инструментов со встроенной поддержкой завершения табуляции в PowerShell и Bash.
- node-core-library: основная структура, используемая во всех наших проектах.
- package-deps-hash: механизм инкрементной сборки, используемый Rush.
- rig-package: система для обмена конфигурациями инструментов между проектами без дублирования конфигурационных файлов.
- stream-collator: волшебство того, как Rush может отображать вывод журнала в реальном времени из параллельных задач без уродливого чередования вывода.
- tree-pattern: сопоставитель шаблонов для древовидных структур JavaScript, используемый нашими правилами lint.
- семейство плагинов webpack, полезных для создания веб-приложений
Какое отношение к Рашу?
Компоненты «Rush Stack» — это необязательные дополнения, которые вы можете использовать с Rush.
Работа Раша как организатора сборки заключается в следующем:
- Обеспечьте детерминированную и надежную установку пакетов (используя Yarn, PNPM или NPM)
- Создавайте свои проекты в правильном порядке, как можно быстрее
- Применяйте политики, чтобы обеспечить бесперебойную работу вашего монорепозитория
- Управляйте рабочими процессами публикации
- Установите стандартный макет репозитория и знакомый интерфейс командной строки, чтобы облегчить разработчикам, которые вносят свой вклад во множество различных монорепозиториев.
Помимо этой роли, Раш оставляет все остальное на ваше усмотрение. Отдельные проекты можно создавать с любой цепочкой инструментов, которая вам нравится. Это очень гибко!
Но у гибкости есть и обратная сторона. Инструментарий Node.js печально известен своим ошеломляющим набором опций: Выберите свой компилятор. Выберите свой линтер. Выберите свой упаковщик, менеджер пакетов, механизм задач, средство запуска тестов, библиотеку тестовых утверждений и так далее. После того, как вы сделали ставки, интеграция всех этих частей превращается в отдельный программный проект. По мере увеличения масштаба эти расходы могут быстро возрасти!
Летом 2019 года мы запустили Rush Stack с целью предоставить повторно используемое решение для этого более широкого круга проблем. Конечно, вы все еще можете использовать Rush отдельно. Но если вы устали от одиночества, мы приглашаем вас:
- Поменяйте свою гибкость на самоуверенный подход, поддерживаемый экспертами по инструментам, которые управляют огромными монорепозиториями.
- Объедините усилия с открытым сообществом, которое инвестирует в этот подход
- Помогите нам «углубиться» в интеграцию, оптимизацию, документацию и доработку, чтобы достичь уровня разработчика мирового уровня.