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

Wrangler提示缺少默认模块导出,该如何解决?

解决Wrangler发布时的ES模块警告问题

你遇到的警告是因为Cloudflare Worker支持两种代码格式:模块式Worker(要求导出default对象,包含处理请求的方法)和服务工作线程式(通过addEventListener注册事件)。你的代码既有ES模块的export语句(供测试用),又用了服务工作线程的写法,Wrangler检测到模块导出但没找到default导出,所以自动降级为服务工作线程格式并抛出警告。

下面是两种解决方法:

方法1:改用模块式Worker(推荐)

修改index.js,导出包含fetch方法的默认对象,同时保留测试用的导出函数,这样既符合ES模块规范,又能消除警告:

export function bar() {
    return "https://stackoverflow.com/questions/ask";
}

export async function foo(request) {
    return new Response(JSON.stringify({ url: bar() }));
}

// 导出模块式Worker的默认处理对象
export default {
    fetch: foo
};

这样Wrangler会识别为标准的模块式Worker,警告自动消失,你的测试代码依然可以正常导入bar和foo函数。

方法2:明确指定服务工作线程格式

如果不想修改代码结构,可以在wrangler.toml中添加配置,强制Wrangler使用服务工作线程格式,避免检测模块导出:

[build]
format = "service-worker"

额外注意:修复代码语法错误

你的index.js存在几处语法错误,不修复会导致Worker运行失败:

  • 函数定义缺少括号:bar { → bar() {,foo { → foo(request) {
  • JSON.stringify缺少闭合括号:return new Response(JSON.stringify({url: bar()} → return new Response(JSON.stringify({url: bar()}));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 13:50:22