You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何升级所有全局npm子模块中的包 修复ansi-regex安全漏洞

全局npm包依赖ansi-regex安全版本升级方案

受CVE-2021-3807漏洞影响,所有npm环境中的ansi-regex包需要满足5.x分支≥5.0.1、6.x分支≥6.0.1的版本要求,npx npm-force-resolutions无法作用于通过npm i -g安装的全局包,可通过以下系统性步骤完成升级:

  • 第一步:先排查全局环境现有ansi-regex安装情况
    执行命令查看所有全局依赖树中的ansi-regex版本和所属顶层包:
    npm ls -g ansi-regex
  • 第二步:优先升级全局顶层包
    ansi-regex通常作为顶层全局包的间接依赖存在,优先升级扫描结果中关联的顶层包即可触发依赖版本更新:
    • 升级指定顶层全局包:npm update -g <顶层包名称>
    • 若ansi-regex属于npm本身的依赖,直接升级npm到最新版本:npm install -g npm@latest
  • 第三步:使用npm overrides特性强制全局版本统一(适用于npm 8.3及以上版本)
    1. 执行npm config get prefix找到npm全局安装根目录,进入目录后找到根目录下的package.json文件,若不存在可执行npm init -y生成
    2. 在package.json中新增overrides配置字段:
    {
      "overrides": {
        "ansi-regex": ">=5.0.1 <6.0.0 || >=6.0.1"
      }
    }
    
    1. 执行全局升级命令触发强制版本替换:npm update -g
  • 第四步:Docker镜像场景专项适配
    若需要在Docker镜像中修复该漏洞,可在Dockerfile的全局包安装步骤前新增以下指令,实现所有层的全局包统一配置:
    # 升级npm到支持overrides的最新稳定版
    RUN npm install -g npm@latest
    # 配置全局ansi-regex版本规则
    RUN cd $(npm config get prefix) && npm init -y && npm config set save-prefix='' && npm pkg set overrides.ansi-regex=">=5.0.1 <6.0.0 || >=6.0.1"
    
    后续所有npm i -g安装的全局包都会自动适配符合安全要求的ansi-regex版本。
  • 第五步:验证升级结果
    升级完成后重新执行扫描命令,确认所有返回的ansi-regex版本均符合安全要求:
    npm ls -g ansi-regex

内容的提问来源于stack exchange,提问作者Sohail Si

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:45:03