Ubuntu 20.04 LTS服务器运行Cypress测试报fsevents错误如何解决
问题答复
依赖说明
Cypress本身不存在对fsevents的强制依赖,该包是其依赖的文件监听工具chokidar的MacOS专属可选依赖,仅能在Mac设备上安装使用,Linux和Windows平台无需安装该包。
你遇到的平台不兼容报错、找不到模块报错,是因为依赖安装/解析逻辑异常,没有正确跳过Linux平台下不需要的可选依赖导致的。
可落地解决方案
以下方案均同时兼容Cucumber和非Cucumber的Cypress测试场景:
- 方案1:安装依赖时跳过可选依赖
执行对应包管理器的命令,直接忽略所有可选依赖安装:
npm 环境:npm install --no-optional
yarn 环境:yarn install --ignore-optional - 方案2:全局配置忽略fsevents
如果你想避免每次安装都加参数,可以做固定配置:- 在项目根目录新建
.npmrc文件,加入配置:fsevents=false - 重新执行依赖安装即可
- 在项目根目录新建
- 方案3:清理残留缓存重装依赖
如果是跨平台同步代码带来的依赖缓存残留问题,执行以下操作重置依赖:- 删除本地依赖目录:
rm -rf node_modules - 删除依赖锁定文件:
rm -f package-lock.json yarn.lock - 清理npm全局缓存:
npm cache clean --force - 执行带可选依赖跳过的安装命令:
npm install --no-optional
- 删除本地依赖目录:
- 方案4:服务器无头运行场景关闭文件监听
如果是在Ubuntu服务器上跑CI/CD自动化测试,不需要实时监听文件变更,可以在运行Cypress时直接关闭文件监听功能,从根源避免chokidar加载fsevents相关逻辑:cypress run --config watchForFileChanges=false
内容的提问来源于stack exchange,提问作者Timothy Rajan
相关产品推荐
相关产品推荐

