← Назад к вопросам

Что такое pubspec.lock?

1.0 Junior🔥 91 комментариев
#Другое

Комментарии (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.

Что такое pubspec.lock? | PrepBro