You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

上传Cloudflare Worker时遭遇错误码10021问题求助

解决Cloudflare Worker部署时的10021错误(Uncaught异常)

我之前也踩过这个坑,这个错误本质是你的Worker脚本在Cloudflare的运行环境里触发了未被捕获的异常,导致部署失败。下面是我亲测有效的排查和修复方向:

1. 先本地模拟环境调试,精准定位错误

直接上传排查太浪费时间,建议用Cloudflare官方的wrangler工具在本地模拟Worker环境,它会输出具体的异常栈信息:

  • 先安装Wrangler:npm install -g wrangler
  • 到项目根目录执行:wrangler dev dist/index.js
  • 控制台会明确告诉你哪里出了问题——比如是某个变量未定义、语法错误,或者用了Worker环境不支持的Node.js专属API(比如fs模块)

2. 检查Webpack打包配置和产物

因为你用Webpack打包成单文件,很可能是打包环节出了问题:

  • 避免打包Node.js专属模块:Cloudflare Worker是基于V8的无服务器环境,不支持Node.js核心模块(fs/path这类)。如果你的代码里引入了这些,Webpack会把它们打包进去,直接导致运行报错。赶紧替换成Web标准API(比如用fetch代替Node.js的http模块)。
  • 设置正确的打包目标:在webpack.config.js里把目标环境设为webworker,确保Webpack只打包Worker兼容的代码:
    module.exports = {
      target: 'webworker',
      // 其他原有配置...
    };
    

3. 用极简代码做测试验证

如果本地调试还是没头绪,试试“排除法”:

  • 先写一个最基础的Worker脚本替换dist/index.js
    addEventListener('fetch', event => {
      event.respondWith(new Response('Hello World!'));
    });
    
  • 再执行你原来的curl命令上传。如果这次能成功部署,说明问题肯定在你原来的业务代码里,再逐步添加代码片段,直到触发错误,就能精准定位问题点。

4. 最后检查API请求的细节

  • 确认@dist/index.js的路径正确:curl里的相对路径是相对于你执行命令的目录的,要是dist不在当前目录,得写绝对路径。
  • 核对ZONE_ID、邮箱、API密钥是否正确——虽然这个错误主要是脚本问题,但也不排除权限异常导致的隐性报错(不过这种情况错误码一般不是10021)。

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

火山引擎 最新活动