我们刚刚将pnpm
从2.25
迁移到3.0
我们的项目使用的是--frozen-shrinkwrap
选项,以确保我们的依赖项没有不必要的更改。
现在使用pnpm 3.0,可以选择使用--frozen-lockfile
但是,如果我们仅将shrinkwrap.yaml
重命名为pnpm-lock.yaml
,则表示格式不正确。
没有--frozen-lockfile
,某些依赖项是错误的(这就是我们要冻结所有内容的真正原因)。
是否可以使用旧的冻结文件或将其冻结为新格式?
如果没有,恐怕团队会陷入pnpm
2.25
答案 0 :(得分:0)
不幸的是,没有自动的方法将shrinkwrap.yaml
迁移到pnpm-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
}