LoginSignup
0
1

LaravelとVite(React)での環境変数ファイル.envや.env.developmentの扱いの違いにハマった話

Last updated at Posted at 2023-11-27

※初学者の初投稿です!

初めて感じた、本番と開発環境で環境変数を変えたい!という気持ち。

初めてのレンタルサーバーでの本番環境構築
LaravelとReact(vite使用)2つの別プロジェクトを乗せようとしたときそう思った。

そう思えるようになった自分の成長を感じながら、
なんかいい感じに設定して自動で切り替わるようにしたろ!
そう思ってさんざんハマった挙げ句、そもそもこれが間違いであることに気づいた話。

2つの相違点についての投稿があまりなかったので、自分のためにもまとめておきます。

(基本中の基本過ぎて投稿がないのかもしれない)
(でもセンキュー謎ブログとかワイも言われてみたい。)
(他の記事やサイトと重複してるとか、間違ってるとかあったら教えてください!すぐ消します)

そもそも本番と開発は.envファイルを別々に設定するのが一般的である

当たり前ですね汗

Laravelにおける環境は.env内のAPP_ENVに指定しますがここの値は、
production
local
testing
のどれかと決まっているようです。
引用:https://teratail.com/questions/l9i2i08pzhw12p

つまり以下の環境変数ファイルが追加で使えます。(使用自体推奨されていませんが)
.env.local (※viteの場合、開発環境はdevelopmentなので、.env.developmentですね)
.env.production
.env.testing

そしてこれらのファイルが存在する場合、
Laravelの場合は.envファイルは読み込まれません!!

Laravelの場合と言ったな・・・そう・・・
察しのいいエンジニアは嫌いじゃないよ。

Viteの場合はこれらのファイルが存在しても.envも読み込まれます!!
同じ環境変数があった場合.env.developmentとかの定義が優先される仕組みなんですね。
あと注意としてViteは.env.developmentなどの環境変数は頭にVITE_とつけないと認識してくれません。

絶対常識だがハマったので。

補足(疲れたので以下適当で勘弁して下さいって言ってみたかった)

Laravelでどうしても自動で環境変数を切り替えたい場合はconfigフォルダ内のphpファイルで設定するようです。
やり方はググったら出てきます。

viteでどうしてもの場合は.env.developmentなどを使いこちらだけgithubにpush、デプロイ先でpullしても良いが、publicリポジトリの場合パスワードなどが混入しないように注意。
(初学者の仲間のために一応解説しておくが、.gitignoreというファイルに書かれているファイルはgithubに共有されない。.envもその1つ。なぜならデータベースのパスワードとか入ってたりするから。おわり。)

ちなみに以下が件のサイト(ばちばち作成中)である。
いつかポートフォリオにするつもりなので暖かく見守ってほしい。
https://discuss-front.vercel.app/

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1