1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/CarGuo-GSYFlutterBook

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Dart-360.md 6.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.03.2025 00:06 5767d61

Dart 3.6 выпущен, workspace и разделители цифр

Workspace

Ранее мы уже говорили о том, как Flutter переходит на использование единого репозитория (monorepo) и поддерживает работу с рабочими пространствами (workspaces). Начиная с версии Dart 3.6, система управления зависимостями Pub теперь официально поддерживает возможность использования shared resolution между пакетами в рамках одного monorepo или workspace.

Функционал pub workspaces гарантирует, что все пакеты внутри monorepo будут использовать согласованное множество зависимостей, что позволяет легче решать конфликты зависимостей при работе с группой связанных пакетов.

Monorepo (mono-repository) — это метод управления проектами, при котором несколько проектов хранятся в одном репозитории. В рамках monorepo все проекты имеют доступ ко всему набору кода, компонентам, библиотекам и внутренним зависимостям, содержащимся в этом едином репозитории.

Кроме того, анализатор Flutter теперь может обрабатывать все пакеты внутри pub workspace в рамках одного аналитического контекста, а не создавать отдельный контекст для каждого пакета, как это было ранее.Для больших репозиториев, особенно из-за структуры monorepo, анализатор во время работы вынужден загружать множество повторяющихся аналитических контекстов для каждого пакета и всех его зависимостей, что приводит к созданию множества копий каждого пакета в оперативной памяти, что вызывает проблемы с использованием памяти. Использование рабочего пространства значительно снижает потребление памяти сервером языка Dart, тем самым повышая производительность среды разработки.Чтобы определить pub workspace, необходимо добавить поле workspace в корневой файл pubspec.yaml и указать связанные пакеты:

name: _
publish_to: none
environment:
  sdk: ^3.6.0
workspace:
  - packages/helper
  - packages/client_package
  - packages/server_package

Затем выполните команду pub get, чтобы завершить маппинг и управление оставшимися файлами в любом месте репозитория. Чтобы использовать pub workspace, все пакеты в рабочем пространстве (но не зависимости) должны иметь ограничение версии SDK ^3.6.0 или выше:

environment:
  sdk: ^3.6.0
resolution: workspace

Если любые пакеты в рабочем пространстве зависят друг от друга, они автоматически будут распознаны как пакеты из этого рабочего пространства независимо от источника.

Кроме того, можно также использовать файл pubspec_overrides.yaml рядом с файлом pubspec.yaml для перекрытия зависимостей.

Дополнительно см.: https://juejin.cn/post/7433673239426007078 / https://dart.dev/tools/pub/workspaces

Подсчет загрузок PubДля получения более подробной информации о подсчетах загрузок Pub, обратитесь к официальной документации Dart или используйте соответствующие API и инструменты для сбора статистики загрузок. На сайте pub.dev теперь требуются более точные метрики: downloads. Подсчет скачиваний заменит предыдущий показатель "популярности" на страницах отдельных пакетов. Кроме новых метрик, на каждой странице будет доступна мини-диаграмма, которая покажет еженедельное количество загрузок в течение некоторого периода времени:

Мини-диаграмма# Разделители цифр

Dart 3.6 теперь позволяет использовать подчеркивание (_) в качестве разделителя цифр, что помогает сделать длинные цифровые литералы более читаемыми. Например, несколько последовательных подчеркиваний могут указывать на более высокий уровень группировки:

1__000_000__000_000__000_000
0x4000_0000_0000_0000
0.000_000_000_01
0x00_14_22_01_23_45

При этом аналогичная функциональность будет доступна в Dart 3.7, где использование подчеркивания (_) в локальных переменных и параметрах является независимым, поэтому можно объявлять их произвольное количество раз в одном и том же диапазоне без конфликтов.

Ссылка: https://medium.com/dartlang/announcing-dart-3-6-778dd7a80983

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/CarGuo-GSYFlutterBook.git
git@api.gitlife.ru:oschina-mirror/CarGuo-GSYFlutterBook.git
oschina-mirror
CarGuo-GSYFlutterBook
CarGuo-GSYFlutterBook
master