Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
pubspec.lock - файл фиксированных версий зависимостей
pubspec.lock - это файл, который Dart/Flutter генерирует автоматически и фиксирует точные версии всех используемых пакетов. Это гарантирует воспроизводимые сборки на всех машинах.
Назначение
pubspec.yaml - что нужно (диапазоны версий)
dependencies:
flutter:
sdk: flutter
http: ^1.0.0
provider: ^6.0.0
pubspec.lock - точные версии
http: 1.1.0 # Зафиксирована точная версия
provider: 6.0.5
Когда создается
flutter pub get # Создает/обновляет pubspec.lock
flutter pub upgrade # Обновляет версии
flutter run # Использует версии из pubspec.lock
Что в pubspec.lock
- direct - прямые зависимости (из pubspec.yaml)
- transitive - косвенные зависимости (зависимости зависимостей)
- packages - точные версии, источники, хеши
Best Practice
Всегда коммитить pubspec.lock:
git add pubspec.lock
git commit -m "Update dependencies"
Это гарантирует, что все разработчики и CI используют одни версии.
Для обновления версий:
flutter pub upgrade # Обновить все в диапазоне
flutter pub upgrade http # Обновить конкретный пакет
Зачем это важно
- Reproducible builds - один код, одинаковый результат везде
- Team consistency - все работают с одними версиями
- CI/CD stability - тесты, сборки работают одинаково
- Версионирование - контролируем когда обновляются зависимости
Проблемы
Конфликт версий:
package_a требует async >=2.0, package_b требует async <2.0
Решение: обновить одну из зависимостей или использовать dependency_overrides.
pubspec.lock - критический файл для control over dependencies.