yamlで記述した設定情報のうち、APIの口となるURL等必要最低限の情報は初めからVue側に渡しておきたい。しかも vue-cli のデフォルトで生成される
public/index.html
に……。
さて、これをどうやるかを考えていたのですが、少し試したところ下記のことが分かりました。
.env
をルートディレクトリに置いて、VUE_APP_<VAR_NAME>
というように頭に「VUE_APP_
」を付けた変数名であれば、process.env.<VAR_NAME>
でVue.jsのプロウグラム、コンポーネントからアクセス可- コンポーネントの
data
にhoge: process.env.<VAR_NAME>
という風に書いておけば通常通りthis.hoge
でアクセス可 .env.development
は開発時のみ、.env.production
はビルド時に有効
index.html
はejs構文使用可(ファビコン出力に<%= BASE_URL %>
という記述があるため)
したがって、下記のようなことが考えられます。
bin/preprocess
というJavaScriptの処理プログラムを置いておいて、npm scripts
のserve
とbuild
のコマンド前にbin/preprocess && vue-cli-service serve
という風にしてvue-cliの行程の直前にjs(bin/preprocess
)を挟むようにするbin/preprocess
の中で- yamlファイルをパース
.env
系のファイルに文字列としてyamlの中で必要な情報を出力
後はVue.js側ないし
index.html
で受け取って処理を行うだけ。これで行けますね。
参考
余談
タイトルとは全く関係ないですが、記事にするほどのボリュームもないので記事の端にメモしておきます。
iOS(iPhone)のSafariのURLバーの色を変更する方法が分かった気がするので、その方法を。
iPhoneの場合だけにURLバーの高さ分だけ空コンテンツを追加して、その背景色を指定すれば良さそうな感じがします。
Androidならば
meta
タグの
theme-color
で指定するのですが、iOSのSafariはこうするのか……と感心した次第。
参考