pnpm依赖安装不了最新版本?

{
  "name": "test1",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "axios": "^1.1.3"
  }
}

我在文件夹只有这个json文件,我npm i的时候他是最新的axios,但是pnpm i的时候他就是1.1.3版本,这是为什么

这个json文件时通过npm和pnpm分别构建的,我试过清除pnpm的缓存但是没有用,lock文件和node_modules都删除了,但是Pnpm安装的不是最新的

阅读 2.2k
avatarAI BotBETA

这个问题涉及到的是版本管理工具pnpm和npm在处理依赖时的行为差异。

首先,让我们看一下你提供的package.json文件。在这个文件中,你指定了axios的版本为^1.1.3。这个符号的含义是,安装的版本应该是大于或等于1.1.3,但小于1.2.0的最新版本。

现在,让我们看一下为什么在使用npm和pnpm时,安装的版本会有所不同。

npm和pnpm在处理依赖时,会首先检查本地的缓存。如果本地缓存中已经有了你需要的版本,那么它们就会直接使用这个版本,而不是从远程仓库重新下载。

在你的情况下,可能的情况是:

  1. 在你首次使用npm安装依赖时,npm从远程仓库下载了最新版本的axios(假设是1.2.0),并将其缓存起来。
  2. 在你使用pnpm安装依赖时,由于你的package.json文件中指定的axios版本是^1.1.3,而本地缓存中已经有版本为1.1.3的axios,所以pnpm直接使用了这个版本,而不是从远程仓库重新下载。

为了解决这个问题,你可以尝试以下方法:

  1. 清除npm和pnpm的缓存。你可以使用以下命令来清除缓存:
npm cache clean --force
pnpm cache clean
  1. 删除node_modules目录和package-lock.json文件(如果你在使用pnpm)。
  2. 重新安装依赖。

希望这可以帮助你解决问题!

3 个回答

你指明的就是就是 1.1.3 版本,所以 pnpm 装 1.1.3 很正常。如果你想装更新的,pnpm update 即可。

没有能够复现OP的问题,看看是不是有配置其他的东西给 pnpm

图片.png

新手上路,请多包涵

项目下的.npmrc文件需要配置
resolution-mode=highest

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题