javascript - supabaseUrl 是必需的 sveltekit

标签 javascript svelte sveltekit supabase

我遇到这个问题已经有一段时间了,想解决这个问题: 根据 supbase documentation你创建了一个.env 文件

VITE_SUPABASE_URL="YOUR_SUPABASE_URL"
VITE_SUPABASE_ANON_KEY="YOUR_SUPABASE_KEY"

然后在 supabaseClient.js 中调用它们:

import { createClient } from '@supabase/supabase-js'

const supabaseUrl = import.meta.env.VITE_SUPABASE_URL
const supabaseAnonKey = import.meta.env.VITE_SUPABASE_ANON_KEY

export const supabase = createClient(supabaseUrl, supabaseAnonKey)

但是这不起作用,我得到 supabaseUrl is required. 并且 env 变量没有被导出。

有谁知道为什么以及如何解决?

我需要安装任何额外的库吗?

提前致谢

最佳答案

SvelteKit 最近添加了新的商店来导入环境变量,比如 $env/static/private .使用:

# .env file
PUBLIC_SUPABASE_URL="YOUR_SUPABASE_URL"
PUBLIC_SUPABASE_ANON_KEY="YOUR_SUPABASE_KEY"
// supabaseClient.js

import { createClient } from '@supabase/supabase-js'   
import {PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY} from '$env/static/public'

export const supabase = createClient(PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY)

这应该可行,但请注意,您的 secret 正在公开访问的 JS 文件中公开(因此 PUBLIC_ 前缀)。因此,最好只从 SvelteKit 端点访问 supabase(该教程没有这样做。)为此,您应该使用 $env/static/private 存储和环境变量 PUBLIC_ 前缀。 (您还必须将 supabase 代码重构为 Svelte 端点,而不是 Svelte 页面/组件。)

警告:SvelteKit API 在不断变化,最终的 v1.0 方法可能会大不相同。最新的 SvelteKit 已经引入了重大的突破性变化:


我以前使用过旧的 VITE_SUPABASE_URL + import.meta.env.VITE_SUPABASE_URL 方法,所以它应该可以工作。我不确定 SvelteKit 是否在引入新的环境变量存储时禁用了此方法。

更新:如果您想继续使用旧的import.meta.env.VITE_SUPABASE_URL 方法,可以通过设置envPrefix 来实现。在你的vite.config.js (来源:https://kit.svelte.dev/docs/configuration#env)

关于javascript - supabaseUrl 是必需的 sveltekit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73370235/

相关文章:

tailwind-css - 使用 Turborepo、SvelteKit 和 Tailwind 的 monorepo 中的样式问题

javascript - 我可以在 Svelte 中使用 React 组件吗?

express - 如何将 ExpressJS 后端连接到 SvelteKit 前端?

typescript - 如何在 Svelte 中实现 Google Analytics GTAG GDPR 合规性

javascript - 客户端上的 HTML 按钮,用于在服务器上运行 python 脚本,然后将结果发送到客户端上的网页

javascript - 导入/导出名称冲突解决

javascript - qTip 和动态内容

javascript - 画外音没有读出我在文本框中输入的内容

svelte - 绑定(bind)值传递给 :click callback (anchor tag)

sveltekit - 如何在 SvelteKit 项目中使用 mongodb?