Конгламерация и согласованность кода стали еще более серьезной проблемой теперь, когда значительная часть кода создается ИИ-агентами. Генераторы Nx создавались для эпохи, когда написание кода было сложной задачей, поэтому можно было бы утверждать, что теперь они устарели. Однако оказывается, что в сочетании с ИИ-агентами они работают еще лучше.
Использование генераторов Nx для обеспечения единообразия кода
Если говорить вкратце, генератор Nx — это параметризованный шаблон, который можно вызывать для создания каркаса кода. Плагины Nx обычно поставляют их в составе пакета, чтобы вы могли генерировать новые пакеты для конкретного плагина с правильно настроенными связями.
Встроенные генераторы плагинов — это хорошо и удобно, но еще более мощная возможность заключается в том, что вы можете создавать собственные плагины рабочей области с так называемыми «локальными генераторами». Они находятся в вашем монорепозитории и предназначены для автоматизации повторяющихся операций, в основном связанных с созданием каркаса кода.
Итак, вы устанавливаете @nx/plugin:
Затем генерируете его в свою рабочую область:
И, наконец, создаете новый генератор:
Все это создает лишь базовую структуру. Затем вам нужно реализовать ее с помощью собственной логики.
И наконец, вы можете вызвать его из своего монорепозитория Nx, как и любой другой генератор:
Вы можете использовать этот же механизм для автоматизации самых разных задач в рабочей области монорепозитория Nx, включая добавление языковой поддержки, как мы обсуждали в нашей последней серии блогов о полиглотных монорепозиториях Nx.
Почему бы просто не использовать ИИ-агенты для создания каркаса кода
Ведь это то, в чем они хороши, верно? Позвольте мне выразиться проще:
- расход токенов
- единообразие кода
Создание каркаса — это детерминированная операция, и я стараюсь по возможности выносить ее за пределы модели.
ИИ-агенты не детерминированы. Золотая середина кроется в их комбинации. Поскольку вызов генератора Nx — это команда CLI, ИИ-агенты могут без проблем прочитать ее и выполнить. Кроме того, агент способен интерпретировать вывод генератора и при необходимости адаптировать его к конкретной ситуации в рабочей области. На мой взгляд, в этом и заключается выгода.
Поручите агенту написать генератор Nx
Раньше создание и поддержка этих генераторов отнимали много времени, но теперь мы можем доверить эту часть агентам, и они отлично с ней справляются, поскольку это четко определенная задача.
Теперь вы можете указать агенту на настройку библиотеки, которую хотите стандартизировать, и попросить его закодировать соглашения и конфигурацию в виде локального генератора.
Рабочая область в видео представляет собой простую рабочую область pnpm с библиотеками TypeScript на базе Vite. В ней есть один пакет, настроенный так, как должен выглядеть каждый будущий пакет. Примерный промпт выглядит так:
Пример промпта
Используйте Nx Devkit для создания локального генератора рабочей области. Возьмите текущий проект в packages/products в качестве шаблона: его конфигурацию Vite, настройки TypeScript и способ объявления экспорта. Я хочу, чтобы новые пакеты в этой рабочей области генерировались аналогичным образом.
Это еще не все
Nx всегда создавался с расчетом на кастомизацию и расширяемость, что сейчас, в эпоху ИИ-агентов, стало огромным преимуществом.
Ознакомьтесь со страницей документации Расширение Nx для получения дополнительных примеров автоматизации Nx.
Узнать больше
- Локальные генераторы
- Расширение Nx
- Сообщество Nx в Discord
- X / Twitter
- GitHub Nx
- Канал Nx на YouTube









