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

Node.js 10中source-map-support报TypeError及Protractor测试失败求助

解决Node.js 10升级后Protractor测试因source-map-support报错的问题

我之前也碰到过类似的坑,这是Node.js 10和旧版source-map-support之间的兼容性冲突导致的——Node.js 10对调用栈帧的API做了调整,废弃了部分旧方法,而老版本的source-map-support还在使用已被移除的frame.getFileName()方法,直接触发了这个TypeError。

最直接的解决方案:升级source-map-support

这是根治问题的办法,新版已经修复了Node.js 10+的兼容问题:

  • 先检查当前依赖的版本:
    npm list source-map-support
    
  • 如果版本低于0.5.12,直接升级到最新稳定版:
    npm install source-map-support@latest --save-dev
    
    (0.5.12及以后的版本已经把frame.getFileName()替换成了Node.js 10支持的frame.fileName属性调用)

临时Workaround:禁用source-map-support

如果暂时没法升级依赖,可以先临时禁用它来让测试跑起来:

  • 找到测试代码或配置里引入source-map-support的行(一般是require('source-map-support').install()),直接注释掉
  • 或者通过环境变量启动测试时禁用:
    NODE_OPTIONS="--no-source-map-support" protractor your-protractor-config.js
    

额外检查:确保Protractor与Node.js 10兼容

Node.js 10要求Protractor的最低版本是5.4.0,如果你的Protractor版本太老,也可能连带引发依赖冲突:

  • 升级Protractor到兼容版本:
    npm install protractor@latest --save-dev
    
  • 清理旧依赖后重新安装,避免缓存问题:
    rm -rf node_modules package-lock.json
    npm install
    

你遇到的报错信息参考:
✗ encountered a declaration exception - TypeError: frame.getFileName is not a function at isInsideNodeModules (internal/util.js:360:28) at showFlaggedDeprecation (buffer.js:149:8) at new Buffer (buffer.js:174:3) at Array. (/Users/k26686/aniruddh/develop/after-india-trip/shepherd/node_modul...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:47:31