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

使用Cypress Docker镜像测试Angular应用时安装NPM依赖报错

解决方法

该报错是因为你使用的cypress/base:14镜像内置的npm版本存在历史bug,系统级npm缓存目录/.npm归属root用户,而Jenkins启动容器时默认使用UID为1002的非root用户,没有写入权限导致的,可任选以下一种方案解决:

  • 方案1:运行npm安装前修正缓存目录权限

    直接按照报错提示的命令修改目录归属,在npm i前新增权限修正步骤:
    script
    {
        sh('sudo chown -R 1002:1002 /.npm')
        sh('npm i')
        //Run e2e tests
        sh('npm run cy:run')
    }
    
    若镜像中未配置sudo权限,可选择方案2。
  • 方案2:修改npm缓存目录到当前工作空间

    无需root权限,将npm缓存目录指定到当前Jenkins工作空间即可绕过系统目录权限限制:
    script
    {
        sh('npm config set cache $(pwd)/.npm_cache --global')
        sh('npm i')
        //Run e2e tests
        sh('npm run cy:run')
    }
    
  • 方案3:升级Cypress基础镜像

    该npm权限bug已在新版本中修复,直接更换更高版本的Cypress基础镜像即可从根源解决问题,无需修改执行步骤:
    agent {
            docker {
            // 替换为更高版本的镜像,例如Node.js 18版本的基础镜像
            image 'cypress/base:18'
            }
        }
    

附加说明:日志中的peer依赖警告不影响程序正常运行,若需要消除警告,可将npm i替换为npm i --legacy-peer-deps。

内容的提问来源于stack exchange,提问作者Pavan Jadda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:39:04