pnpm audit 报告高危漏洞,但不知道怎么修复?

长孙美菊 阅读 3

我用 pnpm 管理项目依赖,今天运行 pnpm audit 时提示有个高危漏洞,说是 axios 版本太低。但我明明在 package.json 里写的是 "axios": "^1.6.0",也重新 install 过,为啥还是报?

尝试过删 node_modules 和 pnpm-lock.yaml 重装,但 audit 结果没变。是不是 pnpm 的解析逻辑和 npm 不一样?下面是我项目里引入 axios 的方式:

import axios from 'axios';

const api = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 10000,
});

export default api;
我来解答 赞 3 收藏
二维码
手机扫码查看
2 条解答
书生シ雨婷
你的某个依赖包锁定了旧版 axios,不是你直接引用的问题。跑一下 pnpm why axios 看看是谁在引用旧版本,然后用 pnpm update axios 或者直接 pnpm add axios@latest 强制升级,就这样。
点赞
2026-03-02 12:19
新杰
新杰 Lv1
这个问题我遇到过,pnpm 的 lock 文件会锁定具体版本,你 package.json 写 ^1.6.0 只代表允许安装的范围,不代表已经装了最新版。

先看看实际装的版本:

pnpm why axios


再看下 lock 文件里 axios 锁定的是哪个版本,大概率是 1.6.0 或更低版本,没升上去。

直接强制更新:

pnpm update axios@latest


或者指定具体版本:

pnpm add axios@1.6.8


更新完再跑一次 pnpm audit 确认漏洞修复。

还有个坑要注意,如果你的项目有其他依赖也引用了 axios,可能存在版本冲突。这种情况在 package.json 里加个 overrides 强制统一版本:

{
"pnpm": {
"overrides": {
"axios": "^1.6.8"
}
}
}


加完重装:

rm -rf node_modules pnpm-lock.yaml
pnpm install


这样基本能解决。pnpm 的依赖解析确实比 npm 严格,lock 文件优先级很高,不手动 update 它不会自动帮你升到范围内最新版。
点赞 1
2026-03-01 15:19