- Koa + Vue.js の Web アプリケーションの雛形として使いたい
- TypeScript で作れるようにしたい
- tslint でチェックも
- テストの書き方も
- database のアクセスは後回し
- master / develop ビルド時に CircleCI 経由で docker image も作れるようにしたい
- src 配下
- サーバサイド処理
- src/Kernel.ts
- bind 処理を司る
- client-web 配下
- フロント処理
- Vue.js で記載する想定
npm run buildで../vue-publicに出力する
- vue-public
- フロントの build 結果をここに出力する
- koa-static での参照先が本ディレクトリとなる
src/__tests__ 配下に格納。
src/__fixtures__ 配下にはテスト用の Fixture を格納(テスト対象外)
- FooTest.spec.ts
class-validatorを使用したケースのテスト
- FooControllerTest.spec.ts
- Service を Mock に差し替え API を呼び出して結果を確認する
Koa 経由で実行するパターン
- FooControllerIntegration.spec.ts
- 実際に API を呼び出して結果を確認する
- StaticControllerIntegrationTest.spec.ts
/アクセス時の確認(koa-staticが設定されているかの確認)
$ npm run format
$ npm start
開発時は、以下のコマンドで、Vue.js 側の変更も取り込みます。
$ npm run develop
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_DEFAULT_REGIONECR_ENDPOINT: e.g.<ACCOUNT-ID>.dkr.ecr.ap-northeast-1.amazonaws.comREPOSITORY_NAME${ECR_ENDPOINT}/${REPOSITORY_NAME}となるように設定します
- develop ブランチの build 時に docker image を作成する
- development-${CIRCLE_BUILD_NUM}
- master ブランチの build 時に docker image を作成する
- master-${CIRCLE_BUILD_NUM}
- feature ブランチの build 時には docker image を作成しない
- 本当は常に作成した方がいいとは思うのだけど...
$ curl -o /usr/local/bin/circleci https://circle-downloads.s3.amazonaws.com/releases/build_agent_wrapper/circleci && chmod +x /usr/local/bin/circleci
$ circleci update$ circleci config validate -c .circleci/config.yml
config file is valid と出れば OK
$ circleci build .circleci/config.yml