Flutter: Могу ли я принудительно flutter устанавливать пакеты из pubspec.lock?

#flutter #dart #continuous-integration

#flutter #dart #непрерывная интеграция

Вопрос:

Кто-нибудь знает, можете ли вы выполнять воспроизводимые сборки во Flutter? Похоже, что нет возможности установить из pubspec.lock файла. Я бы ожидал чего-то вроде:

flutter pub get --from-lockfile

Проблема в том, что pubspec.lock изменяется при каждом запуске flutter pub get , поэтому я не могу легко вернуться к предыдущему состоянию зависимостей в разных точках истории git.

Я бы ожидал, что он будет вести себя как yarn.lock или package-lock.json, которые позволяют создавать воспроизводимые сборки проекта.

Комментарии:

1. pub get следует уже сделать это в разумных пределах в соответствии с документами

2. Да, если предполагаемое поведение может быть воспроизведено на минимальном примере с использованием pub get из Dart SDK, пожалуйста, сообщите о проблеме здесь: github.com/dart-lang/pub

Ответ №1:

Как упоминалось в документе, pub get следует извлекать то, что находится в pubspec.lock , если файл блокировки содержит решение для требований к зависимостям и ограничений, настроенных в pubspec.yaml . Проще говоря, если pubspec.yaml и pubspec.lock не изменены, и ни Dart, ни Flutter SDK не обновлены, то pub get следует извлечь то, что указано в pubspec.lock .

Если у вас все еще возникают проблемы, которые можно воспроизвести, вы можете сообщить о проблеме здесь https://github.com/dart-lang/pub/issues — как jonasfj также упоминал в комментариях.

Комментарии:

1. Ключевым для меня было » и ни Dart, ни Flutter SDK не обновлены «. У меня всегда возникают проблемы с воспроизводимостью при проверке старого коммита. Понижение версии до предыдущей версии Flutter перед запуском flutter pub get делает свое дело.