Estoy desarrollando una aplicación usando Nuxt.js3 y supabase.
Nuxt.js en plugins/supabase.server.js (no he descubierto si el servidor o el cliente también son mejores para esto). Quiero usar "supabase = createClient(~~)" de index.vue.
Sin embargo, no estoy definido, ya sea porque la importación no funciona o porque lo estoy llamando de manera incorrecta.
Si uso la sintaxis de bigote y la llamo como "{{ $ supabase }}", aparecerá la función.
(No soy bueno en inglés, así que uso oraciones traducidas).
plugins/supabase.server.js
import { defineNuxtPlugin } from '#app' import { createClient } from '@supabase/supabase-js/dist/main/index.js' export default defineNuxtPlugin(nuxtApp => { const config = useRuntimeConfig(); nuxtApp.provide('supabase', () => createClient(config.supabaseUrl, config.supabaseKey)) }) declare module '#app' { interface NuxtApp { $supabase (): string } }páginas/index.vue
<script setup> console.log($supabase) //$supabase is not defined </script> <template> {{ $supabase }} // () => createClient(config.supabaseUrl, config.supabaseKey) </template>useRuntimeConfig desde '#app' . Entonces, en tu ejemplo, cambia la primera línea:
import { defineNuxtPlugin } from '#app'Dentro:
import { defineNuxtPlugin, useRuntimeConfig } from '#app'