0

我们刚刚pnpm从迁移2.253.0

我们的项目使用--frozen-shrinkwrap选项来确保不会对我们的依赖项进行不必要的更改。

现在使用 pnpm 3.0,可以使用一个选项--frozen-lockfile但是如果我们简单地将我们的重命名shrinkwrap.yamlpnpm-lock.yaml,它表示格式不正确。

如果没有--frozen-lockfile,某些依赖项会出错(这就是我们想要冻结所有内容的真正原因)。

有没有办法使用或将我的旧冻结文件迁移到新格式?如果不是,恐怕团队会卡在pnpm2.25

4

1 回答 1

0

不幸的是,没有自动迁移shrinkwrap.yamlpnpm-lock.yaml.

我建议以下。找到破坏项目的依赖版本并使用pnpm hooks固定工作版本。

因此,如果您知道 foo 具有依赖项bar@^2.0.0并且bar@2.1.0正在破坏您的构建,则可以像这样重写 foo 的依赖项中的 bar:

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
}
于 2019-03-21T17:28:53.463 回答