メモ: dotenv を使って環境変数を設定した Nuxt.js プロジェクトを Netlify にデプロイするときの注意点
Nuxt dotenv-module and deploying to Netlify · Issue #25 · nuxt-community/dotenv-moduleVersion 1.3.0 Reproduction link https://github.com/beardedpayton/paytonburdette.com-v2 Steps to reproduce Install module npm i nuxtjs/dotenv ** cant include the @ symbol here, it thinks I'm trying ...GitHub
↑コメントがわかりやすいのだけど、dotenv は .env から環境変数を生成するためのモジュールなので、Netlify とかにデプロイするときに .env ファイルを .gitignore とかしてると当然環境変数が作られないことになる。 Netlify のための環境変数は設定から Environment 項目で設定できて、 process.env.XXX で設定できるんだけど、そもそも process.env.XXX は nuxt.config.js の env 項目で設定してないとサーバサイドのときしか読めない。 という前提の上で、 nuxt.config.js の env に require('dotenv').config().parsed を置くとどうなるか?
- ローカルの開発環境では dotenv のおかげで環境変数読める
- Netlify 上で
nuxt generateすると.envファイルがないので nuxt.config.js 上のenvが展開できない - Netlify 上でサーバサイドのみ変数が読めてクライアントサイドは読めないという状況になる
というわけでどうするべきか? nuxt.config.js の env 項目を require('dotenv').config().parsed で展開せず個別に書くこと。