Cypress GitHub Action运行失败:Node Sass版本不兼容问题如何解决
问题修复方案
错误根因
核心报错是CI环境安装的node-sass@6.0.1版本与项目依赖要求的^4.0.0 || ^5.0.0范围不匹配。本地运行正常是因为本地Node.js版本和GitHub Action默认Ubuntu运行环境的Node.js版本不一致,而node-sass和Node.js版本存在强绑定关系,不同Node版本默认拉取的node-sass版本不同。此外你提供的YAML配置存在缩进语法错误,也会导致工作流运行异常。
修复步骤
- 第一步:修正YAML配置的缩进错误,同时指定与本地一致的Node.js版本,保证环境一致性,修正后的YAML参考如下:
name: Cypress Tests # 控制工作流触发时机 on: # 仅main分支推送时触发工作流 push: branches: [ main ] jobs: cypress-run: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 # 指定和本地一致的Node.js版本,示例为14.x,可替换为你本地实际使用的版本 - name: Setup Node uses: actions/setup-node@v3 with: node-version: 14.x cache: 'npm' # 运行Cypress测试 - name: Cypress run uses: cypress-io/github-action@v2 with: build: npm run build start: npm start
- 第二步:如果调整Node版本后仍报错,可通过以下两种方案解决依赖兼容问题:
- 方案1:锁定项目
node-sass版本,在package.json中将node-sass依赖版本改为5.0.0,删除package-lock.json或yarn.lock后重新安装依赖提交即可。 - 方案2:替换
node-sass为无Node版本绑定的sass(dart-sass),执行命令npm uninstall node-sass && npm install sass --save-dev,提交修改后的依赖文件即可,该方案后续无需再处理node-sass的版本兼容问题。
- 方案1:锁定项目
内容的提问来源于stack exchange,提问作者Mehmet Can BOZ
相关产品推荐
相关产品推荐

