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

Azure DevOps中npm返回代码254错误的原因及解决方法

Npm failed with return code: 254 when integrating Cypress tests into Azure DevOps via Node.js & YAML

错误含义解析

返回码254是npm命令执行失败的通用退出码,结合你提供的运行日志来看,核心问题是npm找不到package.json文件——日志里明确显示ENOENT: no such file or directory, open '/home/vsts/work/package.json',但你的代码实际存放在/home/vsts/work/1/s目录下(日志里的cwd = /home/vsts/work/1/s可以佐证),说明执行npm run test时的工作目录不对,导致npm在错误的路径下查找配置文件。

解决方案

咱们可以通过以下几步修复这个问题:

  1. 指定Npm任务的工作目录
    在你的Npm@1任务中添加workingDirectory参数,指向代码仓库的根目录(Azure DevOps用$(System.DefaultWorkingDirectory)这个变量来表示该路径),确保npm能找到package.json。修改后的任务配置如下:

    - task: Npm@1
      inputs:
        command: 'custom'
        customCommand: 'run test'
        workingDirectory: '$(System.DefaultWorkingDirectory)' # 新增这一行,指定正确的工作目录
        continueOnError: true
    
  2. 确认package.json的test脚本配置
    检查项目根目录下的package.json,确保scripts字段里有正确的Cypress测试命令,比如:

    "scripts": {
      "test": "cypress run"
    }
    
  3. 升级Node.js版本(可选但推荐)
    你当前使用的Node.js 10.x版本已经不再被Cypress的新版本支持(Cypress 10+要求Node.js 14及以上),如果你的Cypress版本较新,建议把Node.js版本换成14.x或更高:

    - task: NodeTool@0
      inputs:
        versionSpec: '14.x' # 替换成14.x/16.x等兼容版本
      displayName: 'Install Node.js'
    

问题根源说明

Azure DevOps的Npm@1任务默认工作目录可能没有自动继承代码仓库的根目录,导致npm在错误的路径下寻找package.json,触发了文件不存在的错误,最终返回通用失败码254。指定工作目录后就能让npm在正确的位置执行命令了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 08:22:34