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

添加vercel.json导致SvelteKit项目Vercel部署失败

排查SvelteKit + Vercel定时任务部署失败问题

核心问题:服务器端调用客户端API

  • invalidate是SvelteKit仅客户端可用的导航API(来自$app/navigation),在服务器端的+server.js中调用会直接触发运行时错误,这是导致部署失败的最可能原因。
  • 解决方案:替换为服务器端可执行的逻辑——如果你需要更新数据,直接调用数据更新函数(比如操作数据库、拉取远程数据等),而非依赖客户端的缓存失效操作。

修正后的示例代码

// src/routes/api/cron/+server.js
// 替换为你实际的数据更新逻辑
import { refreshCalendarData } from '$lib/calendar-utils';

export async function GET(req) {
  // 验证Vercel Cron的请求签名
  if (req.headers.get('Authorization') === `Bearer ${process.env.CRON_SECRET}`) {
    try {
      await refreshCalendarData();
      return new Response("Cron job executed successfully", { status: 200 });
    } catch (err) {
      console.error('Cron job failed:', err);
      return new Response("Job failed", { status: 500 });
    }
  } else {
    return new Response('Unauthorized', { status: 401 });
  }
}

额外排查步骤

  • 检查vercel.json配置:确认path与你的API路由完全匹配(你的/api/cron对应src/routes/api/cron/+server.js,路径是正确的);Cron表达式* * * * *是合法的每分钟执行计划。
  • 环境变量验证:确保Vercel项目的生产环境已配置CRON_SECRET变量,且部署时已同步。
  • 本地预测试:用vercel dev启动本地开发服务器,手动调用/api/cron接口,查看控制台是否有报错,提前发现问题。
  • 查看部署日志细节:在Vercel部署详情页切换到「Functions」标签,查看Serverless函数的构建/运行日志,可能会显示代码层面的错误信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 03:43:31