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

Azure Pipeline安装Playwright失败问题求助

解决Azure Pipeline中Playwright安装失败的问题

核心问题分析

结合你的配置和Playwright 1.49.0的版本要求,主要存在两个关键问题:

  1. Node.js版本不兼容:Playwright 1.49.0要求Node.js版本≥16.x,而你当前使用的14.x版本过低,直接导致依赖安装失败。
  2. package.json依赖冗余:存在重复依赖(如ts-node、eslint-plugin-playwright同时出现在dependencies和devDependencies中),可能引发安装冲突。

分步解决方案

1. 升级Node.js版本

修改Azure Pipeline的NodeTool@0任务,将Node版本指定为20.x(LTS长期支持版本,兼容性更稳定):

- task: NodeTool@0
  inputs:
    versionSpec: '20.x'
  displayName: 'Install Node.js'

2. 清理package.json冗余依赖

将开发相关依赖统一放在devDependencies中,移除重复项,修改后的配置如下:

{
  "name": "uv-playwright-tests",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "build": "tsc --noEmit",
    "esLint": "eslint .",
    "esLint-fix": "eslint . --fix",
    "e2e:headless": "npx playwright test",
    "e2e:headed": "npx playwright test --headed",
    "e2e:chrome-headed": "npx playwright test --project=Chromium --headed",
    "e2e:chrome-headless": "npx playwright test --project=Chromium",
    "test:runo365test": "npx playwright test",
    "generateReport": "npx playwright show-report",
    "e2e:generate-html-report": "npx playwright show-report",
    "e2e:generate-allure-report": "allure generate ./allure-results -o ./allure-report --clean"
  },
  "devDependencies": {
    "@eslint/js": "^9.15.0",
    "@faker-js/faker": "^9.2.0",
    "eslint-plugin-playwright": "^2.1.0",
    "allure-commandline": "^2.32.0",
    "allure-playwright": "^3.0.6",
    "dotenv": "^16.4.5",
    "fs-extra": "^11.2.0",
    "globals": "^15.12.0",
    "prettier": "^3.3.3",
    "typescript": "^5.6.3",
    "typescript-eslint": "^8.15.0",
    "ts-node": "^10.9.2",
    "@types/authenticator": "^1.1.4",
    "@types/node": "^22.9.1",
    "playwright": "^1.49.0",
    "@playwright/test": "^1.49.0",
    "eslint": "^9.15.0",
    "eslint-config-prettier": "^9.1.0",
    "eslint-plugin-import": "^2.31.0",
    "eslint-plugin-prettier": "^5.2.1",
    "@typescript-eslint/eslint-plugin": "^8.15.0",
    "@typescript-eslint/parser": "^8.15.0"
  },
  "dependencies": {
    "authenticator": "^1.1.5"
  }
}

3. 优化Pipeline安装流程

添加npm缓存任务,避免重复下载依赖,同时确保Playwright安装命令的稳定性:

steps:
  - task: NodeTool@0
    inputs:
      versionSpec: '20.x'
    displayName: 'Install Node.js'

  # 缓存npm包,加速依赖安装
  - task: Cache@2
    inputs:
      key: 'npm | "$(Agent.OS)" | package-lock.json'
      restoreKeys: |
        npm | "$(Agent.OS)"
      path: $(npm_config_cache)
    displayName: 'Cache npm packages'

  - script: |
      npm ci
    displayName: 'Install project dependencies'

  - script: |
      npx playwright install --with-deps
    displayName: "Install Playwright browsers and dependencies"

4. 确保package-lock.json已提交

npm ci命令依赖package-lock.json文件,需确保该文件已提交至代码仓库。如果没有生成该文件,可在本地执行npm install生成后再提交。

额外排查点

  • 若代理环境存在网络限制,需在Pipeline中添加npm代理配置:
    npm config set proxy http://your-proxy-url:port
    npm config set https-proxy http://your-proxy-url:port
    
  • 检查Agent机器权限,确保有足够权限写入node_modules和Playwright安装目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 04:48:10