Nx 16 здесь!

Мы с гордостью сообщаем о выпуске 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
- Ускорьте свою КИ
- № 15.3:https://blog.nrwl.io/nx-15-3-standalone-projects-vite-task-graph-and-more-3ed23f7827ed
- № 15.4:https://blog.nrwl.io/nx-15-4-vite-4-support-a-new-nx-watch-command-and-more-77cbf6c9a711
- № 15,7:https://blog.nrwl.io/nx-15-7-node-support-angular-lts-lockfile-pruning-46f067090711
- Nx 15,8:https://blog.nrwl.io/nx-15-8-rust-hasher-nx-console-for-intellij-deno-node-and-storybook-aa2b8585772e