ERR_PNPM_BAD_PM_VERSION 该项目配置为使用 pnpm 的 vX。您当前的 pnpm 是 vY

WBOY
发布: 2024-08-19 17:08:03
原创
608 人浏览过

ERR_PNPM_BAD_PM_VERSION This project is configured to use vX of pnpm. Your current pnpm is vY

问题

如果您开始使用 corepack 来管理包管理器您可能会遇到一个非常奇怪的情况,有两个非常相似命令返回# #不同的结果:
雷雷

您可能已经尝试(像我一样)通过运行来“修复项目”:


雷雷

但是结果还是一样

分析

这是什么问题?为什么我们到处强制执行 v9.7.0,但 ember 命令却不知何故使用 v9.1.2?

如果您在项目中运行版本检查,您确实会获得正确的版本:


雷雷

但是如果您从其他地方(您的主)目录运行相同的命令,您将得到“错误”版本:


雷雷

这是一条线索。现在我们来看看你的 ember install ember-leaflet 命令中的 ember 是从哪里来的:


雷雷

啊哈!所以这是我的

globalember-cli 安装,而不是项目安装(位于 ~/my-project/node_modules/ember-cli/bin/ember)。

解决方案

当地的

如果你想在项目中使用

已安装版本的ember-cli,你可以通过pnpm exec执行ember命令来实现:
雷雷

全球的

或者您可以将pnpm的

全球版本固定到与您的项目匹配的版本:
雷雷

pnpm 由 corepack 管理

如果你想解决

global版本不匹配问题,你可能会遇到一个问题,即pnpm是从与corepack不同的来源安装的,并更改了其中的版本corepack 不会影响执行哪个版本,因为other安装优先。

我没有一个简单的解决方案,因为它

很大程度上取决于您的情况以及您想要运行的设置,但如果您(像我一样)只想继续使用 corepack要管理您的 pnpm 版本,您可以尝试以下操作:

    brew 卸载 pnpm
  1. npm uninstall pnpm -g
  2. 按照pnpm文档卸载
  3. 从 shell 配置 (~/.zshrc) 中删除 PNPM_HOME 的任何引用
  4. 重新加载你的shell配置(~/.zshrc)
  5. corepack install --global pnpm@9.7.0
  6. 检查现在是什么版本
  7. 全局可以在你的主目录中运行:pnpm --version
主目录恶作剧

It

可能当你在主目录中时,pnpm --version 命令仍然显示其他一些版本而不是你的全局版本。这是为什么?那么 corepack 使用 package.json 中的 packageManager 字段来确定是否应该使用local版本而不是global版本。您的主目录可能包含 package.json 文件,因此它看起来像一个项目文件夹。只需删除此文件,您很可能是意外创建的,并且不希望 package.json 位于 ~ 目录中。


ChatGPT v4o 制作的插图,使用提示:“困惑的仓鼠看着源代码的意大利面,试图理解它 --ar 16:9”

以上是ERR_PNPM_BAD_PM_VERSION 该项目配置为使用 pnpm 的 vX。您当前的 pnpm 是 vY的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!