0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Lovableが.envに未対応

Posted at

Lovableで生成されたSupabase接続アプリでは、接続情報が、
src/integrations/supabase/client.ts
に直接書かれていました。
これは良くないだろうということで、Cursorの支援で生成してもらった修正ソースは下記のような形。

client.ts
// This file is automatically generated. Do not edit it directly.
import { createClient } from '@supabase/supabase-js';
import type { Database } from './types';

if (!import.meta.env.VITE_PUBLIC_SUPABASE_URL) {
  throw new Error('Missing env.NEXT_PUBLIC_SUPABASE_URL');
}
if (!import.meta.env.VITE_PUBLIC_SUPABASE_ANON_KEY) {
  throw new Error('Missing env.NEXT_PUBLIC_SUPABASE_ANON_KEY');
}

// Import the supabase client like this:
// import { supabase } from "@/integrations/supabase/client";

export const supabase = createClient<Database>(
  import.meta.env.VITE_PUBLIC_SUPABASE_URL,
  import.meta.env.VITE_PUBLIC_SUPABASE_ANON_KEY
);

ところが
https://feedback.lovable.dev/ja/p/put-the-supabase-credentials-in-a-env-or-config-file

こちらでもやり取りされているように、Lovableは.envに対応されていないということで、環境変数の設定もできません。
上記でもコメントしている人がいますが、皆さん気にされていないのが不思議・・・

仕方ないので、client.tsに書いておきますが、将来に期待して、.envから読み込める場合はそれを読んで、読み込めない場合は固定値を使おうと思いました。
そこで、それぞれの変数を定義したところ、

client.ts
//Lovable はまだ.envに対応していないのでやむを得ず
let sburl;
let sbakey;

こんな提案をしてくれるCursor。

client.ts
if (import.meta.env.VITE_PUBLIC_SUPABASE_URL) {
  sburl = import.meta.env.VITE_PUBLIC_SUPABASE_URL;
}else{
  sburl = "https://giji-search-spark.supabase.co";
}
if (import.meta.env.VITE_PUBLIC_SUPABASE_ANON_KEY) {
  sbakey = import.meta.env.VITE_PUBLIC_SUPABASE_ANON_KEY;
}else{
  sbakey = "xxx";
}

変数名だけでなんで分かった??
可愛すぎる・・・

Cursorが本題のようになりましたが、Lovableにはぜひ対応していただきたい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?