Vite 配置環境變數 import.meta.env 時出現 ts 錯誤
阿新 • • 發佈:2022-03-06
問題描述:
使用 Vite 2.x 構建專案時,在 .evn 檔案中建立了自定義環境變數VITE_BASE_URL
但在專案中使用時出現 Typescript 錯誤:
分析原因:
這是因為沒有引入 ImportMeta 的型別宣告檔案,Vite 有提供vite/client.d.ts 來做型別宣告,在 tsconfig.json 中引入即可
解決方案:
在 tsconfig.json 中新增以下配置:
{
"compilerOptions": {
"types": ["vite/client"]
}
}
然後就能推斷出自定義環境變數的型別為: string | boolean | undefined
如過可以確定這個變數為 string 型別,可以加型別斷言 as string,但更合適的做法是建立新的型別宣告檔案 env.d.ts
/// <reference types="vite/client" />
interface ImportMetaEnv {
readonly VITE_BASE_URL: string;
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}
可以將 env.d.ts 檔案放到 src 目錄下,無需再做別的配置,ts 就會引入這個檔案
如果放到別的地方,比如根目錄,就需要調整 tsconfig.json 的配置
{
"compilerOptions": {
"types": ["./env"]
}
}