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

Cloud9搭建React项目运行npm start遇fetch-blob模块#字符解析报错

问题判定

该问题与你安装使用的node-fetch依赖直接相关。

报错原因:v3及以上版本的node-fetch依赖了fetch-blob包,该包内部使用了JavaScript私有类属性语法(即以#开头的类成员标识),你当前项目的Babel转译配置未开启该语法的兼容处理,因此babel-loader处理fetch-blob源码时无法识别该语法,触发解析失败报错。

解决方案

你可以根据自身需求选择以下任意一种方案处理:

  • 方案1:降级node-fetch到v2版本(操作成本最低,无需修改项目配置)
    执行以下命令卸载当前版本,安装v2分支的node-fetch:
    npm uninstall node-fetch
    npm install node-fetch@2
    
    如果你的项目使用TypeScript,还需要同步安装对应版本的类型声明包:
    npm install @types/node-fetch@2 --save-dev
    
  • 方案2:升级Babel配置支持私有类属性语法(适用于需要使用node-fetch v3+特性的场景)
    1. 首先安装所需的Babel转译插件:
    npm install @babel/plugin-proposal-class-properties @babel/plugin-proposal-private-methods @babel/plugin-proposal-private-property-in-object --save-dev
    
    1. 修改项目根目录下的.babelrc或babel.config.json配置文件,在plugins数组中新增已安装的三个插件:
    {
      "plugins": [
        "@babel/plugin-proposal-class-properties",
        "@babel/plugin-proposal-private-methods",
        "@babel/plugin-proposal-private-property-in-object"
      ]
    }
    
  • 方案3:如果你是使用create-react-app初始化的未eject项目,无法直接修改Babel配置,优先选择方案1降级node-fetch即可。

所有方案操作完成后,删除项目根目录的node_modules文件夹和package-lock.json(或yarn.lock)文件,重新执行npm install安装依赖后再运行npm start即可解决报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:30:04