Как использовать мой старый shrinkwrap.yaml с pnpm 3.0?

Мы только что мигрировали pnpm от 2.25 в 3.0

Наш проект использовал --frozen-shrinkwrap вариант, чтобы быть уверенным, чтобы не было нежелательных изменений в наших зависимостях.

Теперь с pnpm 3.0 есть возможность использовать --frozen-lockfile но если мы просто переименуем наш shrinkwrap.yaml в pnpm-lock.yaml, он говорит, что формат не правильный.

Без --frozen-lockfileнекоторые зависимости ошибочны (и это реальная причина, по которой мы хотим заморозить все).

Есть ли способ использовать или перенести мой старый замороженный файл в новый формат? Если нет, боюсь, команда застрянет pnpm 2,25

1 ответ

К сожалению, не существует автоматического способа переноса shrinkwrap.yaml в pnpm-lock.yaml,

Я бы предложил следующее. Найдите версии зависимостей, которые нарушают ваш проект, и закрепите рабочие версии с помощью хуков pnpm.

Так что, если вы знаете, что у foo есть зависимость bar@^2.0.0 а также bar@2.1.0 ломает вашу сборку, вы можете переписать панель в зависимости foo следующим образом:

pnpmfile.js:

module.exports = {
  hooks: {
    readPackage
  }
}

function readPackage (pkg, context) {
  if (pkg.dependencies && pkg.dependencies.bar === '^2.1.0') {
    pkg.dependencies.bar = '2.0.0'
  }

  return pkg
}
Другие вопросы по тегам