Vite용 Validate-env 플러그인
7109 단어 vitejavascriptwebdevbeginners
아니면 정의되지 않은 환경 변수 중 하나라는 사실을 깨닫기 위해 문제를 디버깅하는 데 한 시간을 보냈습니까? 아니면 이 변수가 채워져 있지만 형식이 잘못되었을 수 있습니까?
이것이
vite-plugin-validate-env
가 해결하려고 하는 문제입니다.소개
따라서 Vite용 이 플러그인을 사용하면 런타임 오버헤드 없이 빌드 시 환경 변수의 유효성을 검사할 수 있습니다.
🪛 완전히 형식이 안전합니다. 유형은 스키마 정의에서 유추됩니다.
✅ 여러 검증 라이브러리 지원(
Zod
및 @poppinss/validator-lite
)👉 구문 분석, 유효성 검사, 변환
🎉 맞춤 규칙 및 오류 메시지
그리고 그것은 다음과 같이 간단합니다.
// vite.config.ts
import { defineConfig } from "vite";
import { ValidateEnv } from "@julr/vite-plugin-validate-env";
export default defineConfig({
plugins: [
ValidateEnv({
VITE_MY_VAR: Schema.string()
}),
],
})
이제
pnpm dev
로 개발 서버를 시작하거나 pnpm build
로 빌드를 시작하기 전에 플러그인이 환경 변수의 유효성을 검사합니다. 문제가 있는 경우 프로세스가 즉시 중지되고 경고가 표시됩니다.See fail-fast
다음은 애플리케이션을 시작하거나 빌드하려고 할 때 터미널에서 직접 얻을 수 있는 출력입니다.
변수 변환
또한 API를 호출하는 데 사용하기 위해 변수
VITE_AUTH_API_URL
를 노출하려는 경우를 가정해 보겠습니다. 그러나 이 환경 변수 끝에 슬래시가 있어야 합니다. 방법은 다음과 같습니다.import { defineConfig } from '@julr/vite-plugin-validate-env'
import { z } from 'zod'
export default defineConfig({
validator: 'zod',
schema: {
VITE_AUTH_API_URL: z
.string()
.transform((value) => value.endsWith('/') ? value : `${value}/`),
},
})
Note two things here:
- The schema is validated using Zod, which can be useful if you already use this library. But it would also be possible with the other validator.
- The schema is defined here in a dedicated file env.ts. Separating the schema from vite.config.ts is much cleaner.
그리고 그게 다야. 동료 중 한 명이 이 환경 변수 끝에 슬래시를 잊은 경우 자동으로 추가됩니다.
안전한 import.meta.env 입력
TypeScript를 수행하는 경우 여기 vite 설명서에 설명된 대로 변수를 수동으로 추가하여
import.meta.env
개체에 인텔리센스를 사용할 수 있음을 알 수 있습니다.https://vitejs.dev/guide/env-and-mode.html#intellisense-for-typescript
vite-plugin-validate-env를 사용하면 일석이조로 두 마리의 새를 죽일 수 있습니다. 스키마를 정의하면 다음과 같이
import.meta.env
개체를 매우 쉽게 확장할 수 있습니다.type ImportMetaEnvAugmented = import('@julr/vite-plugin-validate-env')
.ImportMetaEnvAugmented<typeof import('../env').default>
interface ImportMetaEnv extends ImportMetaEnvAugmented {
// Now import.meta.env is totally type-safe and based on your `env.ts` schema definition
}
예시 :
이 플러그인이 유용하기를 바라며 피드백이 있으면 알려주세요! 또한 프로젝트에 기여하고 싶다면 모든 PR에 열려 있습니다.
README의 다양한 기능에 대한 자세한 정보가 포함된 GitHub의 프로젝트를 찾을 수 있습니다. https://github.com/Julien-R44/vite-plugin-validate-env
💖을 보여주시고 마음에 드시면 프로젝트에 별표를 표시해 주시면 프로젝트에 대한 가시성을 높이는 데 많은 도움이 됩니다.
Reference
이 문제에 관하여(Vite용 Validate-env 플러그인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/julienr/validate-env-plugin-for-vite-mfb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)