Nx 16 здесь!

May 03 2023
Мы с гордостью сообщаем о выпуске Nx версии 16! В этой статье мы рассмотрим основные обновления Nx 16 и ключевую информацию, которую вам нужно знать об изменениях, которые приносит Nx 16! Но прежде чем мы перейдем к новым функциям Nx 16, давайте вспомним некоторые из последних функций из наших второстепенных выпусков Nx 15! · Вот как выполнить обновление с помощью Nx Migrate · Пересмотр с @nrwl/* на @nx/* · Автономные приложения Deno, развертывание Edge и многое другое · Тестирование функций Cypress · График задач · Репозиторий Nx переключается на PNPM для своего диспетчера пакетов · Узнать больше Вот как выполнить обновление с помощью Nx Migrate. Как и все новые выпуски Nx, nx migrate можно использовать для перенастройки ваших пакетов Nx до соответствующей версии, а также для внесения любых необходимых изменений в кодовую базу. Чтобы обновиться до Nx 16, запустите. Если доступны дальнейшие миграции, вы увидите файл migrations.

Мы с гордостью сообщаем о выпуске Nx версии 16! В этой статье мы рассмотрим основные обновления Nx 16 и ключевую информацию, которую вам нужно знать об изменениях, которые приносит Nx 16!

Но прежде чем мы перейдем к новым функциям Nx 16, давайте вспомним некоторые из последних функций из наших второстепенных выпусков Nx 15!

  • Мы представили более простые пресеты для стартовых приложений React, Angular и Node.
  • Мы добавили официальную поддержку Vite и Vitest для интегрированных монорепозиториев Nx.
  • Мы представили официальный плагин Deno , включая интеграцию для совместного размещения Node и проекта Deno и поддержку графа проекта для импорта Deno.
  • Мы добавили Rust в кодовую базу Nx, чтобы ускорить работу ядра.
  • Мы добавили поддержку рабочих областей, отличных от npm, для поддержки рабочих областей, ориентированных на другие языки, такие как C#, Java и Kotlin, и увидели некоторые из них в действии с подключаемыми модулями сообщества для .NET и Java/Kotlin.
  • Представлена ​​консоль Nx для IDE JetBrains, таких как IntelliJ и WebStorm.
  • Мы отделили версию Nx от версий Angular, что позволяет вам обновлять Nx без обновления Angular.

· Вот как выполнить обновление с помощью Nx Migrate
· Изменение области видимости с @nrwl/* на @nx/*
· Автономные приложения Deno, развертывание Edge и многое другое
· Тестирование функций Cypress
· График задач
· Репозиторий Nx переключается на PNPM для своего диспетчера пакетов
· Узнать больше

Вот как выполнить обновление с помощью Nx Migrate

Как и все новые выпуски Nx, nx migrateего можно использовать для приведения ваших пакетов Nx к соответствующей версии, а также для внесения любых необходимых изменений в вашу кодовую базу.

Чтобы обновить до Nx 16, запустите

nx migrate latest

Если доступны дальнейшие миграции, вы увидите migrations.jsonфайл в корне вашей рабочей области. В этом файле будут описаны все дальнейшие сценарии генерации кода, которые необходимо запустить. Чтобы запустить их, используйте команду ..

nx migrate --run-migrations

После того, как миграции будут выполнены, вы сможете увидеть их в своих инструментах управления исходным кодом. Убедитесь, что все по-прежнему работает правильно, запустив любое настроенное вами автоматическое тестирование.

Посмотрите этот реальный пример, используя nx migrateкоманду для Tanstack/queryрепозитория:

Также в качестве напоминания нашим пользователям Angular — теперь мы отделили версию Nx от версий Angular , поэтому, пока вы используете LTS-версию Angular, вы можете перейти на последнюю версию Nx, не касаясь ваша угловая версия! Для этого обязательно используйте interactiveопцию (например, nx migrate --interactive). Посмотрите это видео для получения дополнительной информации:

Изменение области видимости с @nrwl/* на @nx/*

Одним из наиболее важных изменений по сравнению с Nx 16 является то, что мы изменим область действия npm, в которой мы публикуем наши пакеты, с @nrwlна @nx. Другими словами, @nrwl/reactтеперь будет опубликовано как @nx/react.

Nx выполнит эту миграцию автоматически с помощью nx migrateкоманды обновить ваши рабочие области!

Чтобы убедиться, что плагины сообщества не сломаны, @nrwl/*версии этих пакетов устарели, но будут продолжать публиковаться до Nx 17, который запланирован на октябрь 2023 года.

И вы можете проверить документы для получения дополнительной информации, если хотите!

Автономные приложения Deno, периферийное развертывание и многое другое

Nx уже некоторое время поддерживает разработку бэкендов на основе Node. Это был популярный выбор для создания вашего BFF в настройке на основе монорепозитория вместе с вашим приложением React или Angular. В Nx 15.7 мы решили расширить эту поддержку и серьезно улучшить общий DX.

Дено получил довольно много любви в этой итерации:

  • Поддержка автономных приложений — теперь вы можете создать новое рабочее пространство Deno для одного проекта с помощью Nx. Просто беги npx create-nx-workspace --preset=@nx/deno. Вероятно, это самый быстрый способ приступить к работе с Deno.
  • Мы также добавили генераторы Nx для настройки Deno с дубом . Просто передайте эту --frameworkопцию при настройке нового приложения Deno (или используйте консоль Nx ).
  • создал совершенно новый @nx/netlifyпакет (в настоящее время находится в лабораториях ), который позволяет вам настроить совершенно новый проект для разработки и внедрения функций Netlify, или вы можете добавить поддержку бессерверного развертывания в существующий проект с помощью генератора @nx/netlify:setup-serverless. Ознакомьтесь с нашим подробным рецептом по теме:https://nx.dev/recipes/deployment/node-serverless-functions-netlify
  • опубликован заново @nx/aws-lambdaдля развертывания функций Lambda в AWS. Все подробности в нашем последнем рецепте:https://nx.dev/recipes/deployment/node-aws-lambda
  • Улучшен наш существующий пакет Deno, чтобы добавить поддержку бессерверного развертывания как в Deno Deploy , так и в Netlify . Такую поддержку можно добавить в существующее приложение с помощью @nx/deno:setup-serverlessгенератора и предоставления --platformфлага, указывающего на deno-deployили netlify.

Nx настраивает тесты e2e для приложений, которые, как правило, собирают много функций. Это заканчивается большим атомарным набором, который Nx не умеет отделять. С Nx 16 мы упростили распространение этих тестов ближе к реальной функции, которую они тестируют. Это значительно облегчит nx affectedопределение того, какие тесты действительно необходимы.

У меня также была возможность провести прямую трансляцию с собственным Калебом из Nx (который руководил большей частью разработки этой функции), а также с Джорданом Пауэллом из Cypress, который также внес свой вклад в эту работу — посмотрите:

График задач

Nx 16.0 также представляет более полезные инструменты для визуализации вашего проекта и графа задач в соответствии с Nx:

График задач, в частности, полезен для визуализации того, что на самом деле выполняется при выполнении команд, а в Nx 16.0 теперь вы можете использовать эту --graphопцию при выполнении большинства команд Nx для визуализации графика задач, которые должны были выполняться, например:

nx build react --graph

Nx Repo переключается на PNPM для своего диспетчера пакетов

Внутри репозиторий Nx переключился на использование pnpmв качестве диспетчера пакетов. С момента перехода мы отметили следующие преимущества:

  • публикация в 2 раза быстрее
  • CI раз уменьшилось
  • время установки уменьшилось

Завершение!

Это все, что касается Nx 16.0 — нам очень понравилась возможность предоставить вам все эти классные вещи, и мы очень хотим начать нашу следующую итерацию с постоянным фокусом на том, чтобы сделать Nx отличным инструментом для повышения вашей производительности. задачи управления репо выходят за рамки уравнения, поэтому вы можете сосредоточиться на доставке отличных вещей.

Узнать больше

  • Документы Nx
  • ‍ Nx GitHub
  • Сообщество Nx Slack
  • Канал Nx на YouTube
  • Ускорьте свою КИ