Как использовать мой старый 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
}