2022年10月13日
my-project という Public リポジトリに対し、my-project-env という名前の Private リポジトリを作成する。(名前はなんでもいい)
そして、my-project-env 内で見せたくない文言などを .env などのenvファイルをコミットし、記載するだけ。
例えば、webのフロントプロジェクトの場合 .env.production
title=ぼくのブログ
<h1>{process.env.title}</h1>
としておいて、my-project内で以下のようなコマンドを実行し、プライベートリポジトリのenvファイルを設置するだけ。
https://user:${GITHUB_TOKEN}@github.com/enoatu/my-project-env.git env && cp -r env/.env* .
このメリットはenvのリポジトリを切り替えるだけで、ビルドプロジェクトが全く新しいものが出来上がることにある。
my-project-env-ramen ブログ1
title=ラーメンの食べ方
my-project-env-seaside ブログ2
title=浜辺で見かけたもの
といったように。
にもなる。
Netlifyなどのホスティング・ビルドサービスを使用する際にも便利だ。
環境変数を CMS_TOKEN
= hogehoge
のように1つ1つ設定するのは手間だが、
環境変数ファイルが含んであるリポジトリがあれば、それをビルド中に持ってきて中を見ればよい。
github > settings > developer setting > personal token 権限は必要な分だけ選択する。
GITHUB_TOKEN
= hogehoge
3. package.jsonにビルドコマンドを設定する
package.json
"build": "rm -rf env && git clone https://user:${GITHUB_TOKEN}@github.com/user/my-project-env.git env && cp -r env/.env* . && hoge build",
1つの環境変数で、プライベートリポジトリを取得して、その中の環境変数ファイルを使用することができる。 そのため、Netlifyに設定する環境変数は1つだけでよくなる。
もし、ローカルで buildする際は、以下等で環境変数を渡してあげるとよい
GITHUB_TOKEN=hogehoge yarn build
他にも環境変数ファイルに暗号化をして、ビルド中に復号をすることで、PublicリポジトリにUPできるようにすることも考えたが、暗号・復号コマンドを入れるのがだるい点(バージョンの違いにより復号できなかったり)、公開しているため脆弱に晒される点、復号キーをパスワードとして自分が覚えなくてはいけない点などを考えると、これが一番いい方法だと思う。