Next.js 프로젝트 생성
npx create-next-app@latest
supabase 테이블 생성
superbase client
yarn add @supabase/supabase-js
📁 utils / 📁 supabase / client.ts
import { createBrowserClient } from '@supabase/ssr'
export function createClient() {
return createBrowserClient<Database>(
process.env.NEXT_PUBLIC_SUPABASE_URL! as string,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY! as string
)
}
export default supabase;
supabase type 설정
supabase package 다운받기
npm i supabase@">=1.8.1" --save-dev
npx supabase login
supabase 파일 생성
npx supabase init
types폴더에 supabase.ts 파일 생성
$PROJECT_REF 에는 프로젝트 이름을 써주면 된다.
npx supabase gen types typescript --project-id "$PROJECT_REF" --schema public > types/supabase.ts
자동 완성
supabaseClient.ts 생성
createClient의 타입으로 Database를 반드시 줘야한다
import { Database } from '@/types/supabase';
import { createBrowserClient } from '@supabase/ssr';
import { SupabaseClient } from '@supabase/supabase-js';
export function createClient(): SupabaseClient<Database> {
return createBrowserClient(
process.env.NEXT_PUBLIC_SUPABASE_URL!,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
);
}
//client component 보일러 플레이트 방지
const supabase = createClient();
export default supabase;
📌 스크립트 처리
타입이 업데이트 될 경우 아래 명령어를 다시 입력해줘야한다. 그러기에는 너무 긴 명령어.. pakage.json에 들어가 script를 추가하자.
npx supabase gen types typescript --project-id "$PROJECT_REF" --schema public > types/supabase.ts
$PROJECT_ID 에는 프로젝트 id값을 넣어주면 된다. 프로젝트 ID값은 supabase의 Project Setting에서 확인할 수 있다.
"gen": "npx supabase gen types typescript --project-id \"$PROJECT_ID\" --schema public > types/supabase.ts"
지정한 스크립트를 아래 명령어를 통해 실행할 수 있고, 이 명령어로 타입을 업데이트 시켜줄 수 있다.
npm run gen
'프로젝트' 카테고리의 다른 글
[프로젝트] Next.js 장바구니 구현하기 - (2) (0) | 2024.07.25 |
---|---|
[프로젝트] Next.js 장바구니 구현하기 - (1) (0) | 2024.07.24 |
[프로젝트] Next.js 심화 프로젝트 (2) - 기획편 (0) | 2024.07.19 |
[프로젝트] 공공데이터포털 API 가져오기 (0) | 2024.07.18 |
[프로젝트] Next.js 심화 프로젝트 (1) - 기획편 (0) | 2024.07.17 |