使うもの

  • 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

元記事はこちら

direnv/dotenvを使ってnpm run-scriptからS3にDeployする