NITS TIPS

~微塵集合知巧~

Astroで環境変数を使用する

最終更新日: 2024-04-07記事投稿日: 2024-04-07

nobumitsu-1995のgithubトップ

Frontend developer

nobumitsu-1995


Astroで環境変数を使用する方法

Astro uses Vite’s built-in support for environment variables, and lets you use any of its methods to work with them.

Astroの環境変数は、viteの組み込み環境変数を使用しているようで、viteを使用したプロジェクトと同様に使用できそうです。


サーバー側コードで環境変数を使用する

基本的にはプロジェクトルートに配置された.envファイルに定義された環境変数をimport.meta.env.SAMPLE_ENV_VARという形で使用できるようです。

サーバー側で環境変数を使用する場合は特に命名のルールはなさそうです。

SAMPLE_ENV_VAR=sample-env.env

クライアント側のコードで環境変数を使用する

クライアント側では、以下のようにPUBLIC_から始まる環境変数しか利用できないようなので注意が必要です👀

PUBLIC_SAMPLE_ENV_VAR=sample-env.env

Defaultで用意されている環境変数

  • import.meta.env.MODE: サイトが実行されているモード。astro dev実行時はdevelopmentastro build実行時はproductionが入るようです。
  • import.meta.env.PROD:サイトがproduction環境で実行されている場合trueになる。
  • import.meta.env.DEV:サイトがdev環境で実行されている場合trueになる。
  • import.meta.env.BASE_URL:astro.configbaseに設定されている値が入るようです。特に設定していなければ/になる。
  • import.meta.env.SITE:astro.configsiteに設定されている値が入るようです。特に設定していなければ値は何も入らない。
  • import.meta.env.ASSETS_PREFIX:astro.configbuild.assetsPrefixに設定されている値が入るようです。特に設定していなければ値は何も入らない。

その他の環境変数に関わるルール

環境変数を定義する.envファイルは.env.production.env.developmentのようにファイル名にモードを付けることもできるようです。これにより、環境変数がそのモードでのみ有効になります。


参考文献


関連記事

  • 最終更新日: 2024-05-06記事投稿日: 2024-05-06

    初回レンダリング時のみ、useEffect内の処理を実行しないようにする方法

    コンポーネントの初回レンダリング時のみ、useEffect内の処理を実行したくないという場面で、どのような処理を加えれば実現できるかを紹介します。

  • 最終更新日: 2024-08-06記事投稿日: 2024-08-06

    ARIA属性を活用したアクセシブルなモーダル実装

    アクセシブルなmodalを実装するために必要なaria属性が意外と多い。参考となるコードをメモとして残しておきたい。

  • 最終更新日: 2024-07-27記事投稿日: 2024-07-27

    swiper/reactで実装したカルーセルをTAB操作した時、画面に描画されていないスライドにフォーカスが当たってしまう

    swiper/reactで実装したカルーセルをTABキーで操作した時、画面に描画されていないスライドにもフォーカスが当たってしまう問題があり、それの修正対応をしたので備忘録として残しておく。

  • 最終更新日: 2024-07-09記事投稿日: 2024-07-09

    PayloadとArgumentの使い分け方

    typescriptで型を宣言するとき〇〇Payloadとか××Argumentとか名付けることが多いがその違いについて真面目に考えたことがなかったので調べてみた。