如何避免锁文件与 PNPM 冲突?

How do I avoid lock file conflicts with PNPM?

我们的团队使用 PNPM,一个反复出现的问题是我们似乎安装了不同版本的 pnpm 命令,导致在添加或更新包时锁定文件 git 冲突。 PNPM 是一个全球性工具,所以我不太确定如何处理这种情况。某些 Node 工具具有全局 CLI 界面 (Grunt),但利用本地安装的包来避免此问题。 PNPM 是否有办法确保整个团队的行为一致以避免锁文件冲突等?

目前推荐的做法是在项目中声明应该使用哪个pnpm版本。它可以通过 engines field of packages.json 完成。例如,如果您的项目应该与 pnpm v6 一起使用,请将其添加到 package.json:

{
    "engines": {
        "pnpm": "6"
    }
}

如果有人 运行 pnpm install 使用不同版本的 pnpm,将会抛出错误。

将来我们可能会自动下载正确版本的 pnpm 并使用它。 Yarn 如何处理版本策略。