Как использовать мой старый shrinkwrap.yaml с pnpm 3.0? - PullRequest
0 голосов
/ 21 марта 2019

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

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

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

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

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

1 Ответ

0 голосов
/ 21 марта 2019

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

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

Итак, если вы знаете, что 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
}
...