部署指南New

项目部署到 Cloudflare Workers

Created: 08/29/2026
Updated: 08/31/2026

项目部署

项目是基于Shipany Tanstack模板作为底座开发的,根据Shipany Tanstack文档 支持部署到Cloudflare Workers

Cloudflare Worker 在 Workers 免费计划上的大小限制为 3 MB,在 Workers 付费计划上为 10 MB。构建 Worker 后,wrangler 将显示原始大小和压缩大小,只有后者(压缩大小)对 Worker 大小限制重要。

Total Upload: 9542.88 KiB / gzip: 1913.36 KiB
模板的大小大概为 1.86 MB,因此即使您是 Cloudflare 免费计划也可以部署

项目部署

设置部署文件

在项目根目录通过下面的命令创建wrangler.jsonc文件。

cp wrangler.example.jsonc wrangler.jsonc

然后修改 wrangler.jsonc 文件中的内容,根据你的项目在线上部署的情况,修改对应的变量值。(不需要新建.env.production)

// Cloudflare Workers deploy config — TEMPLATE.
// The /deploy-cloudflare skill copies this to wrangler.jsonc (gitignored, your
// working copy) and fills in the real values (D1 database_id, production URL).
// `pnpm cf:build` (NITRO_PRESET=cloudflare_module) merges wrangler.jsonc into
// the generated .output/server/wrangler.json; deploy with `pnpm cf:deploy`.
{
  "$schema": "node_modules/wrangler/config-schema.json",
  "name": "shipany-template-pixany", //这里改成你想要的名字,部署后在Cloudflare上就会有这个名字
  "compatibility_flags": ["nodejs_compat"],
  "observability": {
    "enabled": true,
  },
  "vars": {
    "DATABASE_PROVIDER": "d1",//配置数据库,建议用d1,个人使用比Supabase、neon要好,已在Supabase、neon付费另说
    // Server-side runtime fallbacks for the build-time VITE_* values — keep in
    // sync with .env.production (better-auth trustedOrigins, payment callbacks).
    "VITE_APP_URL": "https://pixanyai.16781678.xyz", // 这里是你线上域名
    "VITE_APP_NAME": "Pixany AI",// 这里是网站品牌名,读取优先级是优先取admin配置,无的话取该值
  },
  "d1_databases": [
    {
      "binding": "DB",
      "database_name": "shipany-template-pixany",// D1数据库创建时录入的名称
      "database_id": "289716d2-23fd-xxx-97b0-0753bfc91717", // D1数据库创建成功的id
      "migrations_dir": "drizzle",
    },
  ],
  // ── Postgres via Hyperdrive (instead of D1) ────────────────────────────────
  // 1. npx wrangler hyperdrive create <name> --connection-string="postgres://..." (your direct PG url)
  // 2. Set vars.DATABASE_PROVIDER to "postgresql" and remove the d1_databases block
  // 3. Uncomment and fill the binding (the build keeps the postgres driver in
  //    the bundle when DATABASE_PROVIDER=postgresql — see vite.config.ts):
  // "hyperdrive": [
  //   { "binding": "HYPERDRIVE", "id": "REPLACE_WITH_OUTPUT_OF_WRANGLER_HYPERDRIVE_CREATE" }
  // ]
  //
  // Other optional bindings — uncomment when needed:
  // "kv_namespaces":  [{ "binding": "CACHE",  "id": "..." }],
  // "r2_buckets":     [{ "binding": "BUCKET", "bucket_name": "..." }],
  "triggers": {
    "crons": ["0 16 * * *"] // Daily 00:00 UTC+8 (16:00 UTC) storage migration // 这里不要删除,是配置的定时任务
  }
}

通过命令行部署项目

在项目根目录下执行以下命令,安装项目依赖,已安装就忽略这一步

pnpm install

依赖安装完后,会自动安装 wrangler 命令行工具。

然后在项目根目录下执行以下命令,部署项目到 Cloudflare Workers。

// 注意:这个打包过程大概得持续2-3分钟

pnpm cf:deploy

如果是第一次部署项目到 Cloudflare Workers,命令行会输出 Cloudflare 的授权地址。你需要点击打开链接,在浏览器登录你的 Cloudflare 账户,完成对项目的授权。

授权完成后,部署命令会继续执行,编译项目代码,上传部署文件,最终把你的项目发布到 Cloudflare Workers,并输出预览地址。

至此,项目已经成功部署到 Cloudflare Workers。打开输出的预览地址,就可以看到项目页面了。

注意: 后续有改动,部署还是这个pnpm cf:deploy 命令

接下来,你可以通过 绑定自定义域名、配置 Hyperdrive 等操作,让项目正式上线运营。

绑定自定义域名

如果你没有域名, 请点击下面

如何购买便宜的域名

第一种:在 Cloudflare 添加自定义域名

如果你的域名是在其他域名服务商(Godaddy、Namecheap 等)注册的,你可以选择在 Cloudflare 添加自定义域名。

这一种主要存在新域名第一次在Cloudflare上配置。

然后去你的域名管理后台,把域名的 NAMESERVER 设置为 Cloudflare 提供的 Nameservers

graham.ns.cloudflare.com
ullis.ns.cloudflare.com

域名托管到 Cloudflare 后,可以使用 Cloudflare 提供的 DNS 解析、SSL 证书、CDN 加速等功能。

第二种:在 Cloudflare Workers 添加自定义域名

进入部署在 Cloudflare Workers 的项目管理页面,进入 Settings -> Domains & Routers 页面,点击 Add 按钮,选择 Custom Domain,输入你的自定义域名(可以是托管在 Cloudflare 的根域名,或者子域名),点击 Add Domain 按钮,添加自定义域名。

访问项目

上一步添加自定义域名后,Cloudflare 会自动为域名添加到 Cloudflare Workers 的 DNS 解析记录。等 DNS 解析生效(一般半小时内生效,最多可能需要 48 小时),就可以通过自定义域名访问你的项目了。

配置 Hyperdrive

Hyperdrive 是一项由 Cloudflare 提供的,用于加速全球用户对现有数据库访问的服务。

通过以下步骤配置 Hyperdrive,加快 Cloudflare Workers 上部署的项目对外部数据库的访问速度。

配置 Hyperdrive

进入 Cloudflare 控制台,在 Storage & databases -> Hyperdrive 页面点击 Create configuration 按钮,创建 Hyperdrive 配置。

在创建 Hyperdrive 配置页面,选择 Connect to public database,然后填入数据库配置信息。

Configuration name :是给你自己看的配置名称,填什么无所谓。

Connection String :要填写项目线上环境的数据库连接地址。例如:

// 注意:[your password]换成你的密码,
// db.qcddhntipeafhilqnilm.supabase.co 换成你的(例如上图Supabase截图)
组装示例:postgres://postgres:[your password]@db.qcddhntipeafhilqnilm.supabase.co:5432/postgres

复制 Hyperdrive 配置 ID

在 Hyperdrive 配置管理页面,复制 Hyperdrive 配置 ID。

修改项目配置文件

修改项目根目录下的 wrangler.jsonc 文件,开启 [[hyperdrive]] 配置,填入 Hyperdrive 配置 ID 和线上环境的数据库连接地址。

[[hyperdrive]]
binding = "HYPERDRIVE"  # 固定值,不要修改(注意:复制后删除 “我加的备注”)

id = "your-hyperdrive-config-id" # 填入上一步复制的 Hyperdrive 配置 ID(注意:复制后删除 “我加的备注”)

localConnectionString = "postgres://user:password@domain:port/database" # 填入数据库连接地址, localConnectionString 只在 dev 生效,线上不会用, 例如:postgres://postgres:[your password]@db.qcddhntipeafhilqnilm.supabase.co:5432/postgres(注意:复制后删除 “我加的备注”)

重新部署项目

在项目根目录下执行以下命令,重新部署项目。

pnpm cf:deploy

重新部署项目后,项目会自动使用 Hyperdrive 加速数据库访问。可以在 Hyperdrive 管理页面,看到数据查询请求的统计信息。

个人建议配置上,我之前有个站配置后 查询返回明显快了很多

如果你怎么配置怎么部署都不好使请看这里

下面是怎么部署都没有hyperdrive

尝试方法1:打开 wrangler.jsonc

第一行的这个name 必须和下图中名字保持一致(必须是 同一个)

name = "shipany-template"

然后重新pnpm cf:deploy成功后查看Bindings,如果还是没有,尝试方法2

尝试方法2:手动添加

值写死:HYPERDRIVE

点击后(漫长等待部署(按钮置灰 不是卡死)),Cloudflare 会自动将 Hyperdrive 绑定到你的应用,你的代码就可以通过 env.HYPERDRIVE.connectionString 来使用优化后的数据库连接了。

项目会自动使用 Hyperdrive 加速数据库访问。可以在 Hyperdrive 管理页面,看到数据查询请求的统计信息。

Cloudflare Workers 怎么购买套餐($5 1个月),才能解决打包部署大于3MB报错的问题

登录你的 Cloudflare 账户。

找到 Workers 的订阅/定价(Pricing / Plans)页面 — 通常在 Cloudflare 控制面板里。

选择适合的付费计划(Paid plan)来替换当前 Free plan —— 这样 Worker 的 bundle 大小限制就提升到了 10 MB。

如果 10 MB 仍不够,理论上可以提交「Limit Increase Request Form」请求更高的限制

那我刚买的,现在点击取消,是算一天的,还是算1个月的,如果是1个月,我现在取消,后面这几天还能用么

当你在控制面板里“取消订阅/降级到免费 plan”时,这个取消并 不会立刻生效。也就是说:

  • 取消操作只是“设置为不在下一计费周期续费”,当前这个计费周期仍然有效 — 你将继续保有付费 plan 的功能,直到本期结束。([Cloudflare Docs][1])
  • 他们不会按“天数”结算/退款,也不会因为你提前取消就立刻停止服务或返还剩余天数/费用。([Cloudflare Docs][2])
  • 所以,如果你刚买不久(例如本月刚开始),现在取消的话 —— 你之后直到这个“当前计费周期结束日”(renewal date)之前,依然可以继续使用付费 plan 的全部功能。([Cloudflare Docs][1])

简而言之:取消不会按天结算,也不会失效得马上 — 你付的钱仍算一个完整月,你可以用完这一整月