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

使用Cloudflare API上传Worker脚本失败:提示“Main module name is not present in bundle”

Cloudflare API上传Worker脚本失败:提示“Main module name is not present in bundle”

我之前也碰到过类似的问题,大概率是表单数据的处理细节没到位,你可以试试调整这几个地方:

1. 不要手动设置Content-Type为multipart/form-data

Axios会自动根据你传入的FormData对象生成带有正确boundary的请求头,手动设置反而会丢失这个关键的boundary信息,导致Cloudflare无法正确解析表单内容。所以把请求头里的'Content-Type': 'multipart/form-data'删掉就好。

2. 正确添加脚本文件到FormData

你直接把字符串作为main.js的值添加到表单里,Cloudflare可能无法识别这是一个合法的脚本文件。应该把代码包装成Blob对象,同时明确指定文件名,确保和metadata里的main_module完全一致:

form.append('main.js', new Blob([workerCode], { type: 'application/javascript' }), 'main.js');

3. 给metadata指定正确的Content-Type

默认情况下,FormData会把metadata的内容当成普通文本传递,Cloudflare可能无法解析成JSON格式的元数据。同样把metadata包装成Blob并指定application/json类型:

form.append(
    'metadata',
    new Blob([JSON.stringify({
      main_module: 'main.js',
      compatibility_date: '2025-02-04',
      compatibility_flags: ['nodejs_compat'],
    })], { type: 'application/json' })
);

修正后的完整代码

const api = axios.create({
    baseURL: 'https://api.cloudflare.com/client/v4',
    headers: {
        Authorization: `Bearer ${myToken}`,
        // 移除手动设置的Content-Type
    },
})

const workerCode = `export default {
  async fetch(request, env, ctx) {
    return new Response("Hello World!");
  },
};`

const form = new FormData();
// 正确添加脚本文件
form.append('main.js', new Blob([workerCode], { type: 'application/javascript' }), 'main.js');
// 正确添加元数据
form.append(
    'metadata',
    new Blob([JSON.stringify({
      main_module: 'main.js',
      compatibility_date: '2025-02-04',
      compatibility_flags: ['nodejs_compat'],
    })], { type: 'application/json' })
);

await api.put(
    `/accounts/${accountId}/workers/scripts/${workerName}`,
    form
);

你手动在控制台上传能成功,是因为控制台帮你自动处理了这些表单格式的细节,而API调用需要更精确地符合Cloudflare的要求,调整后应该就能解决这个问题了。

备注:内容来源于stack exchange,提问作者Boris K

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 10:08:09