conta's diary

思ったこと、やったことを書いてます。 twitter: @conta_

vue-cliで実行時の環境変数を切り替える方法

vue-cliには実行時に環境変数を切り替える方法があるらしい。

https://cli.vuejs.org/guide/mode-and-env.html#modes

これを読めばわかるけど一応メモ。

.envファイルを準備する

.env.development.env.production というファイルをプロジェクト直下に作成する。

環境変数を用意する

VUE_APP_命名規則でつけておく(これでないと読み込めないらしい、重要)

ex) VUE_APP_API_ORIGIN='https://example.com'

.env.development
NODE_ENV='development'
VUE_APP_API_ORIGIN='https://dev-example.com'
.env.production
NODE_ENV='production'
VUE_APP_API_ORIGIN='https://prod-example.com'

package.jsonにビルドコマンドを追加 (optional)

--mode <mode name> を各コマンドに追加

 "scripts": {
    "serve": "vue-cli-service serve",
    "dev-serve": "vue-cli-service serve --mode development",
    "prod-serve": "vue-cli-service serve --mode producution",
    "build": "vue-cli-service build",
    "dev-build": "vue-cli-service build --mode development",
    "prod-build": "vue-cli-service build --mode producution",
    ...
  }, 

実行

上に書いたコマンドを実行して、script内にログ出力してみる。 切り替わってたらOK

console.log(process.env.VUE_APP_API_ORIGIN)