equ*_*qui 4 javascript svelte supabase sveltekit
我遇到这个问题已经有一段时间了,想要解决这个问题:根据supbase文档,您创建了一个.env文件
VITE_SUPABASE_URL="YOUR_SUPABASE_URL"
VITE_SUPABASE_ANON_KEY="YOUR_SUPABASE_KEY"
Run Code Online (Sandbox Code Playgroud)
然后你在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)
Run Code Online (Sandbox Code Playgroud)
然而这不起作用,我得到supabaseUrl是必需的。并且环境变量没有被导出。
有谁知道为什么以及如何解决它?
我需要安装任何额外的库吗?
先感谢您
SvelteKit 最近添加了新的商店来导入环境变量,例如$env/static/private. 使用方法:
# .env 文件 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)
Run Code Online (Sandbox Code Playgroud)
这应该可行,但请注意您的秘密正在公开访问的 JS 文件中公开(因此有PUBLIC_前缀)。因此,最好只从 SvelteKit 端点访问 supabase(该教程没有这样做)。为此,您应该使用不带前缀的$env/static/privatestore 和 env 变量。(您还必须重构您的 supabase 代码以使其位于 Svelte 端点中,而不是 Svelte 页面/组件中。)PUBLIC_
警告: 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)
| 归档时间: |
|
| 查看次数: |
1820 次 |
| 最近记录: |