使うもの
- s3-deploy-dotenv
$ npm install —-save-dev s3-deploy-dotenv
- direnv、dotenv
Macなら$ brew install direnv dotenv
手順
1. プロジェクトルートに .env
つくる
# S3 リージョン
S3_REGION=ap-northeast-1
# S3 アクセスキー ID
S3_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXX
# S3 シークレット アクセスキー
S3_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXX
# バケット名
S3_BUCKET={{S3バケット名}}
# デプロイするルートディレクトリ ex) dist
S3_LOCAL_DIR={{ディレクトリパス}}
# デバッグモード 任意
S3_DEBUG_MODE=true
2. npm scriptsに追加
...
"deploy": "s3-deploy-dotenv",
...
3. 実行
$ npm run deploy
環境ごとにわけたい
プロダクション環境を分ける場合...
1. プロジェクトルートに .env.production
をつくる
S3_BUCKET={{プロダクションバケット名}}
上書きしたい値のみ記入でOK.
2. npm scriptsに追加
...
"prod:deploy": "source .env.production && s3-deploy-dotenv && direnv reload",
...
やってること
- sourceコマンドで.env.productionを読み込みグローバル変数が上書きされる
- S3 デプロイの実行
- .envの環境変数に戻す
3. 実行
$ npm run prod:deploy