如果您开始使用 corepack 来管理包管理器您可能会遇到一个非常奇怪的情况,有两个非常相似命令返回# #不同的结果:
雷雷
雷雷
雷雷
雷雷
雷雷
globalember-cli 安装,而不是项目安装(位于 ~/my-project/node_modules/ember-cli/bin/ember)。
解决方案 当地的 如果你想在项目中使用已安装版本的ember-cli,你可以通过pnpm exec执行ember命令来实现:
雷雷
全球版本固定到与您的项目匹配的版本:
雷雷
global版本不匹配问题,你可能会遇到一个问题,即pnpm是从与corepack不同的来源安装的,并更改了其中的版本corepack 不会影响执行哪个版本,因为other安装优先。
我没有一个简单的解决方案,因为它很大程度上取决于您的情况以及您想要运行的设置,但如果您(像我一样)只想继续使用 corepack要管理您的 pnpm 版本,您可以尝试以下操作:
可能当你在主目录中时,pnpm --version 命令仍然显示其他一些版本而不是你的全局版本。这是为什么?那么 corepack 使用 package.json 中的 packageManager 字段来确定是否应该使用local版本而不是global版本。您的主目录可能包含 package.json 文件,因此它看起来像一个项目文件夹。只需删除此文件,您很可能是意外创建的,并且不希望 package.json 位于 ~ 目录中。
以上是ERR_PNPM_BAD_PM_VERSION 该项目配置为使用 pnpm 的 vX。您当前的 pnpm 是 vY的详细内容。更多信息请关注PHP中文网其他相关文章!