我这个问题已经有很长一段时间了,我想解决这个问题: 根据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.,并且环境变量没有被导出.

有人知道为什么和如何解决这个问题吗?

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

先谢谢你

推荐答案

SvelteKit recently added new stores to import env variables, like $env/static/private. To use:

# .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)

这应该是可行的,但是请注意,您的秘密是在可公开访问的JS文件中公开的(因此是PUBLIC_前缀).因此,最好只从SvelteKit端点访问SuperBase(本教程不会这样做).要做到这一点,您应该使用$env/static/private存储和环境变量withoutPUBLIC_前缀.(您还必须将超数据库代码重构为Svelte端点,而不是Svelte页面/组件.)

Warning: SvelteKit API正在不断变化,最终的1.0版可能会有很大的不同.最新的SvelteKit已经引入了重大的突破性变化:


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

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

Javascript相关问答推荐

更新Reduxstore 中的状态变量,导致整个应用程序出现不必要的重新渲染

在JavaScript中对大型级联数组进行切片的最有效方法?

我的glb文件没有加载到我的three.js文件中

序列查找器功能应用默认值而不是读取响应

为什么getRecord()会因为与_logger相关的错误而失败?(使用Hedera SDK)

React存档iframe点击行为

根据总价格对航班优惠数组进行排序并检索前五个结果- Angular HTTP请求

格式值未保存在redux持久切片中

角色 map 集/spritebook动画,用户输入不停止在键上相位器3

WebRTC关闭navigator. getUserMedia正确

我创建了一个创建对象的函数,我希望从该函数创建的对象具有唯一的键.我怎么能做到这一点?

我怎么在JS里连续加2个骰子的和呢?

在HTML语言中调用外部JavaScript文件中的函数

TypeError:无法分解';React2.useContext(...)';的属性';basename';,因为它为空

第二次更新文本输入字段后,Reaction崩溃

元素字符串长度html

Nextjs 13.4 Next-Auth 4.2登录(&Quot;凭据&,{});不工作

try 使用PM2在AWS ubuntu服务器上运行 node 进程时出错

无法使用npm install安装react-dom、react和next

不允许在对象文本中注释掉的属性