본문 바로가기

카테고리 없음

NEXT, VITE 환경변수

 Next.js에서 환경변수 설정 및 사용

 

1. 환경변수 파일 생성

Next.js에서는 .env.local, .env.development, .env.production 등의 파일을 사용합니다.

 

📌 주의: .env.local 파일은 .gitignore에 자동으로 포함되어 Git에 푸시되지 않습니다.

 

NEXT_PUBLIC_API_URL=https://api.example.com
SECRET_KEY=super-secret-key

 2. 환경변수 사용

 

Next.js에서는 NEXT_PUBLIC_ 접두사가 붙은 변수만 클라이언트(브라우저)에서 접근 가능합니다.

 

1) 클라이언트에서 사용

export default function Home() {
  return (
    <div>
      <p>API URL: {process.env.NEXT_PUBLIC_API_URL}</p>
    </div>
  );
}
 

2) 서버에서 사용

🚨 SECRET_KEY 같은 민감한 정보는 클라이언트에서 직접 접근할 수 없습니다.

export default function handler(req, res) {
  res.json({ secret: process.env.SECRET_KEY });
}

 

 

 


3. 환경변수 자동 완성 추가

 

next.config.js에서 환경변수를 명시적으로 선언하면, TypeScript에서 자동 완성 지원을 받을 수 있습니다.

// next.config.js
module.exports = {
  env: {
    NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL,
  },
};

 

 


 

 

 

 Vite에서 환경변수 설정 및 사용

 1. 환경변수 파일 생성

Vite에서는 .env, .env.development, .env.production 파일을 사용할 수 있습니다.

VITE_API_URL=https://api.example.com
SECRET_KEY=super-secret-key

 

📌 주의: Vite는 모든 환경변수에 VITE_ 접두사를 붙여야 클라이언트에서 사용할 수 있습니다.

 


 2. 환경변수 사용

 

Vite의 환경변수는 import.meta.env 객체를 통해 접근합니다.

 

1) 클라이언트에서 사용

function App() {
  return (
    <div>
      <p>API URL: {import.meta.env.VITE_API_URL}</p>
    </div>
  );
}

export default App;

 

2) 서버에서 사용

 
console.log(process.env.SECRET_KEY);

 


 

 3. 환경변수 자동 완성 추가

 

Vite에서 import.meta.env를 TypeScript에서 자동 완성되도록 설정하려면 vite-env.d.ts 파일을 추가합니다.

// vite-env.d.ts
/// <reference types="vite/client" />

interface ImportMetaEnv {
  readonly VITE_API_URL: string;
}

interface ImportMeta {
  readonly env: ImportMetaEnv;
}