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

Vercel部署TanStack Start项目遇500错误:tslib依赖缺失如何解决?

解决Vercel SSR部署TanStack Start项目时的tslib缺失问题

问题背景

将**TanStack Start(Vite + React 19)**项目部署到Vercel SSR环境时,生产站点返回500内部服务器错误,本地运行正常。Vercel日志报错:

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'tslib' imported from /var/task/_libs/supabase__auth-js.mjs

解决方案

方案1:配置Vite强制打包Supabase相关依赖(推荐)

在vite.config.ts中添加ssr.noExternal配置,让Vite把Supabase相关包完全纳入SSR打包范围,避免依赖解析遗漏:

import { defineConfig } from 'vite'
import start from '@tanstack/react-start/vite'

export default defineConfig({
  plugins: [start()],
  ssr: {
    noExternal: ['@supabase/supabase-js', '@supabase/auth-js'],
  },
})

方案2:确认tslib为生产依赖

即使已安装tslib,也要确保它被标记为生产依赖:

  • 执行命令:npm install tslib --save
  • 检查package.json,确保tslib在dependencies字段下(而非devDependencies)
  • 删除node_modules和锁文件,重新安装后提交代码,清除Vercel缓存再部署

方案3:明确Vercel构建命令

在package.json中指定TanStack Start的官方构建命令,并同步到Vercel配置:

{
  "scripts": {
    "build": "start build",
    "vercel-build": "start build"
  }
}

在Vercel控制台的「构建设置」中,将构建命令设置为npm run vercel-build,确保使用正确的SSR构建流程。

问题根源

这是Vite SSR打包逻辑与Vercel Serverless环境的适配问题,而非Supabase兼容性问题:

  • Vite默认会将部分第三方包标记为"外部依赖",不打包进SSR产物
  • @supabase/auth-js内部依赖tslib,但Vercel Serverless环境不会自动安装隐式依赖
  • TanStack Start的默认Vite配置未覆盖这类需要完整打包的第三方依赖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.07 06:12:31