Angular17升级至19后Cypress测试配置报错及兼容问题求助
Angular 19升级后Cypress测试环境故障排查
近期将Angular版本从17升级至19后,Cypress测试环境出现故障,使用了cypress-real-events和cypress-image-snapshot两个工具,遇到的首个错误如下:
TypeError: The "paths[1]" argument must be of type string. Received an instance of Object at validateString (node:internal/validators:162:11) at Object.resolve (node:path:1101:7) at getCommonConfig (/app/node_modules/@angular-devkit/build-angular/src/tools/webpack/configs/common.js:280:24) at async Promise.all (index 0) at async generateWebpackConfig (/app/node_modules/@angular-devkit/build-angular/src/utils/webpack-browser-config.js:64:22) at async generateBrowserWebpackConfigFromContext (/app/node_modules/@angular-devkit/build-angular/src/utils/webpack-browser-config.js:119:20) at async getAngularCliWebpackConfig (/root/.cache/Cypress/13.6.4/Cypress/resources/app/node_modules/@packages/server/node_modules/@cypress/webpack-dev-server/dist/helpers/angularHandler.js:165:24) at async angularHandler (/root/.cache/Cypress/13.6.4/Cypress/resources/app/node_modules/@packages/server/node_modules/@cypress/webpack-dev-server/dist/helpers/angularHandler.js:205:27) at async getPreset (/root/.cache/Cypress/13.6.4/Cypress/resources/app/node_modules/@packages/server/node_modules/@cypress/webpack-dev-server/dist/devServer.js:94:20) at async Function.devServer.create (/root/.cache/Cypress/13.6.4/Cypress/resources/app/node_modules/@packages/server/node_modules/@cypress/webpack-dev-server/dist/devServer.js:111:61) at async /root/.cache/Cypress/13.6.4/Cypress/resources/app/node_modules/@packages/server/node_modules/@cypress/webpack-dev-server/dist/devServer.js:26:24
我的cypress.config.ts配置如下:
import { addMatchImageSnapshotPlugin } from '@simonsmith/cypress-image-snapshot/plugin'; export default defineConfig({ component: { supportFile: 'cypress/support/component.ts', devServer: { framework: 'angular', bundler: 'webpack', }, setupNodeEvents(on, config) { on('task', { log(message) { console.log(message); return null; }, }); addMatchImageSnapshotPlugin(on); }, specPattern: '**/*.cy.ts', }, });
当前依赖包及版本:
"@simonsmith/cypress-image-snapshot": "^9.0.1", "cypress": "^13.6.4", "cypress-real-events": "^1.12.0",
请问是否有无需升级相关包及Cypress至v14的解决方法?cypress-image-snapshot已有一段时间未更新,且cypress-real-events似乎适配的是更早版本的Cypress。
补充说明
尝试相关修复方案后,又出现新错误:
Error: Unexpected major version of webpack-dev-server. Cypress webpack-dev-server works with webpack-dev-server versions 3, 4 - saw 5.1.0 at getMajorVersion (/Users/af/Library/Caches/Cypress/13.6.4/Cypress.app/Contents/Resources/app/packages/server/node_modules/@cypress/webpack-dev-server/dist/helpers/sourceRelativeWebpackModules.js:202:15) at sourceWebpackDevServer (/Users/af/Library/Caches/Cypress/13.6.4/Cypress.app/Contents/Resources/app/packages/server/node_modules/@cypress/webpack-dev-server/dist/helpers/sourceRelativeWebpackModules.js:140:37) at sourceDefaultWebpackDependencies (/Users/af/Library/Caches/Cypress/13.6.4/Cypress.app/Contents/Resources/app/packages/server/node_modules/@cypress/webpack-dev-server/dist/helpers/sourceRelativeWebpackModules.js:189:30) at angularHandler (/Users/af/Library/Caches/Cypress/13.6.4/Cypress.app/Contents/Resources/app/packages/server/node_modules/@cypress/webpack-dev-server/dist/helpers/angularHandler.js:207:142) at async getPreset (/Users/af/Library/Caches/Cypress/13.6.4/Cypress.app/Contents/Resources/app/packages/server/node_modules/@cypress/webpack-dev-server/dist/devServer.js:94:20) at async Function.devServer.create (/Users/af/Library/Caches/Cypress/13.6.4/Cypress.app/Contents/Resources/app/packages/server/node_modules/@cypress/webpack-dev-server/dist/devServer.js:111:61) at async /Users/af/Library/Caches/Cypress/13.6.4/Cypress.app/Contents/Resources/app/packages/server/node_modules/@cypress/webpack-dev-server/dist/devServer.js:26:24
看起来是webpack-dev-server版本不匹配导致的,请问有没有可行的解决办法?
内容的提问来源于stack exchange,提问作者afriedman111
相关产品推荐
相关产品推荐

