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

在SvelteKit项目中创建Supabase客户端文件时TypeScript报错原因

解决SvelteKit+TypeScript里Supabase客户端文件的TS报错问题

为啥会出这问题?

本质是TypeScript把你手动创建的.js文件当成了编译输入源,结果编译输出时又要生成同名文件,直接冲突了——毕竟SvelteKit默认会处理src目录下所有JS/TS文件,两边抢同一个文件名可不就报错了。

直接能用的解决办法

1. 把.js改成.ts(最推荐)

既然用了TypeScript,直接创建supabaseClient.ts就行,TS会把它当成正常源码处理,不会有输入输出撞车的问题。示例代码:

import { createClient } from '@supabase/auth-helpers-sveltekit';
import { PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY } from '$env/static/public';

export const supabase = createClient(
  PUBLIC_SUPABASE_URL,
  PUBLIC_SUPABASE_ANON_KEY
);

2. 让TS忽略这个JS文件

要是非要保留.js后缀,去项目根目录的tsconfig.json里,给exclude数组加上这个文件的路径:

{
  "exclude": [
    "src/lib/supabaseClient.js",
    "node_modules",
    ".svelte-kit",
    "build"
  ]
}

这样TS就不会把这个文件当成编译输入,自然就不会报覆盖的错了。

3. 检查SvelteKit配置有没有乱改

如果之前动过svelte.config.js里的kit.files配置,可能不小心把这个JS文件同时设成了输入和输出目标。直接重置成默认配置试试:

import adapter from '@sveltejs/adapter-auto';
import { vitePreprocess } from '@sveltejs/kit/vite';

/** @type {import('@sveltejs/kit').Config} */
const config = {
  preprocess: vitePreprocess(),
  kit: {
    adapter: adapter()
  }
};

export default config;

4. 清缓存试试玄学

有时候.svelte-kit或node_modules里的缓存会搞出奇怪的问题,删了这俩目录再重新装依赖、启动项目:

# Windows cmd
rmdir /s /q .svelte-kit node_modules
npm install
npm run dev

# PowerShell
Remove-Item -Recurse -Force .svelte-kit, node_modules
npm install
npm run dev

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 18:12:14