🤫

Vite の環境変数で boolean 型を使う時の注意点

に公開

https://zenn.dev/tamura_h_d/articles/f106896a8344c1

.env の環境変数で boolean 型として扱いたくて以下のように定義して

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

interface ImportMetaEnv {
  readonly VITE_APP_PUBLISH: boolean
}

interface ImportMeta {
  readonly env: ImportMetaEnv
}

実装ではこんなふうに書いていた。

if (import.meta.env.VITE_APP_PUBLISH)

でもこれでは期待通り判定されず、以下だと期待通りの動作になった。

- if (import.meta.env.VITE_APP_PUBLISH)
+ if (import.meta.env.VITE_APP_PUBLISH === true)

本当はやり方があるのかもしれないけど、AI コーディングツールが教えてくれて対応できたのでとりあえずはこれで対応。
似たようなことで困っている人の助けになれば幸いです。
もしも、他にやり方があればアドバイス頂けるとうれしいなぁ 🙏

Discussion