0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

.envを使って環境変数を設定できるのね。

Last updated at Posted at 2021-07-12

Reactアプリの環境変数はどこで保持したらいいんだ?

ReactでAPIサーバーにアクセスするときに、APIサーバーのオリジンをソースに直書きしてはいけないな、と思って、環境変数として持つにはどうすればいいのだろう?という疑問があって調べてみました。以下が直す前。

sample.js
try {
      const { data } = await axios(
        `http://localhost:3000/path/to/src`, // ← 直書きしてる
      )
      const hoge = data.hoge
      this.setState({ hoge })
    } catch (err) {
      console.log(err)
    }

結論

.envファイルをプロジェクトのルートディレクトリ直下に作るだけでOK。

Reactで環境変数を定義するときのお作法としてREACT_APP_という接頭辞を付ける必要があるみたいです。

.env
REACT_APP_ORIGIN=http://localhost:3000

process.env.REACT_APP_ORIGINでカスタム環境変数にアクセスできる!

sample.js
try {
      const { data } = await axios(
        `${process.env.REACT_APP_ORIGIN}/path/to/src`, // ← 置き換えた
      )
      const hoge = data.hoge
      this.setState({ hoge })
    } catch (err) {
      console.log(err)
    }

環境ごとに.envファイルを使い分けることもできるみたいです。開発環境用に.env.development、本番環境用に.env.productionというふうにファイルを分ければ良いようです。npmスクリプトコマンド(npm startとか)によって適用される優先順位が変化するようです。詳しくは以下のリンクを参考にしてください。

参考リンク

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?