Vue2とVue3では設定方法が異なります。この記事ではVue3に関する設定方法を。npm run serve mode=mock
として起動することで、.env.mock
のファイルを読み込みます。開発環境の時はNODE_ENV
がdevelopment
なので、.env.development
が読み込まれます。
環境変数名はVUE_APP_
で始まる必要があり、それ以外は無視されてしまう。
VUE_APP_HOGEFUGA=true |
process.env.VUE_APP_HOGEFUGA
で参照可能。
.env
は全てのケースにおいて読み込まれますが、優先順位があり、.env.development
が先に読み込まれる。また、.env.local
や.env.development.local
のように末尾に.local
のファイルがあれば、それが優先的に読み込まれる。.local
は各個人の環境でのみ利用することを想定しているファイルで.gitignore
の対象となっている。
例えば、--mode=development
で起動した場合、.env.development.local
-> .env.development
-> .env.local
-> .env
の順番に読み込みされて、同じ環境変数名がある場合は先勝ちである。
これらの処理はdotenv
やdotenv-expand
のモジュールがやってるのだと思うのですが、そんなコードは見つけられず、dotenv-flow
にこのような処理があるけど、vue3からはリンクはされておらず。
どうやら自前で処理している様子。
vue-cliのcli-serviceのService.jsに処理がありました。dotenv
を利用しており、環境変数DEBUG=true
をつけて実行すると、dotenv
のデバッグログが有効になって、そのあたりのログが出力されます。