LoginSignup
2
3

More than 3 years have passed since last update.

Herokuにデプロイしたcreate-react-appに環境変数を設定する

Posted at

create-react-appcreate-react-app-buildpack を組み合わせるとHeroku上に簡単にReactアプリケーションをデプロイすることが出来ます。
ただ、SPAのWEBアプリケーションは必ず外部サーバーとの接続を行う必要があり、サーバーの接続先URLを記述する必要があります。
環境依存情報なのでコードに直接記述することはできないのでビルド時やデプロイ時に埋め込む、もしくは起動時に反映する必要があります。
ここではHeroku APPの環境変数を利用したユースケースを紹介します。

Heroku APP の環境変数設定

create-react-app-buildpackのドキュメント に記載されていますが、Heroku APPに環境変数をセットするだけです。
なお、反映されるのはReactの仕様から REACT_APP_ という接頭辞の値だけになります。

Heroku APP の環境変数設定例

環境変数.png

Reactの表示とサンプルコード

設定した環境変数は process.env.X で参照するだけなのですが、参考までにサンプルコードと表示例を紹介します。
なお、 NODE_ENV は自動的にセットされます。

サンプルコード

import React from 'react';

class EnvironmentForm extends React.Component {
  render() {
    return (
      <div style={{marginLeft : '20px', width: '600px'}}>
        <h2 style={{marginBottom : '5px'}}>環境変数</h2>

        <div style={{marginLeft : '5px'}} className='enclosed-area'>
          <div style={{marginBottom : '10px'}}>
            <b>process.env.NODE_ENV:</b> {process.env.NODE_ENV}
          </div>

          <div style={{marginBottom : '10px'}}>
            <b>process.env.REACT_APP_API_URL:</b> {process.env.REACT_APP_API_URL}
          </div>

          <div style={{marginBottom : '10px'}}>
            <b>process.env.REACT_APP_X:</b> {process.env.REACT_APP_X}
          </div>

          <div style={{marginBottom : '10px'}}>
            <b>process.env.REACT_APP_Y:</b> {process.env.REACT_APP_Y}
          </div>
        </div>
      </div>
    );
  }
}

export default EnvironmentForm;

表示例

react.png

2
3
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
2
3