intermediate

Lockfiles

Держите разрешение зависимостей воспроизводимым на машинах, в CI, review, audit и release-сборках.

Lockfile фиксирует точный разрешённый граф зависимостей: версии, integrity hashes, вложенные пакеты и иногда метаданные peer resolution. Установки воспроизводимы на ноутбуках, в CI и release-сборках.

| Файл | Менеджер | |------|----------| | `package-lock.json` | npm | | `pnpm-lock.yaml` | pnpm | | `yarn.lock` | Yarn |

Диапазоны в манифесте (`^1.2.0`) — намерение; lockfile — факт. У приложений lockfile в репозитории. У библиотек он может быть для dev/CI, а потребители резолвят свой граф.

					# Паттерны CI (концептуально)
npm ci
pnpm install --frozen-lockfile
yarn install --immutable
				

На интервью: почему одного манифеста мало, как review транзитивных апгрейдов, падения frozen install и security review новых пакетов в диффе lockfile.

Типовые ошибки: случайная регенерация с массовым апгрейдом транзитивов; удаление lockfile «чтобы починить»; несколько менеджеров и расходящиеся lockfile.

Компромисс — воспроизводимость и аудит против merge-конфликтов на крупных обновлениях.

Чеклист:

  • Коммитьте lockfile приложений.
  • Review транзитивов в PR.
  • Frozen/immutable install в CI.
  • Регенерация осознанно, не случайно.