> mkdir -p src/lambda/handlers
> curl -o src/lambda/handlers/apig-hello-world-handlers.ts https://gist.githubusercontent.com/cm-wada-yusuke/2002a761a00015dc913ea9222ce11496/raw/apig-hello-world-handler.ts
curl -O https://gist.githubusercontent.com/cm-wada-yusuke/2002a761a00015dc913ea9222ce11496/raw/tsconfig.json
- 型定義は不要なので
"declaration": false,
- commonjs ライブラリも require ではなく import from で使いたいので "esModuleInterop": true,
テストコードで ソースコードを絶対パスで読み込めるようにする
"baseUrl": ".",
"paths": {
"@app/*": [
"src/*"
]
}
srcは個別に設定するためここでは除外
"exclude": [
"cdk.out",
"dist",
"node_modules",
"src"
]
curl -O https://gist.githubusercontent.com/cm-wada-yusuke/2002a761a00015dc913ea9222ce11496/raw/tsconfig.src.json
- ルートディレクトリと出力ディレクトリを指定
curl -O https://gist.githubusercontent.com/cm-wada-yusuke/2002a761a00015dc913ea9222ce11496/raw/tsconfig.cdk.json
curl -O https://gist.githubusercontent.com/cm-wada-yusuke/2002a761a00015dc913ea9222ce11496/raw/tsconfig.test.json
yarn add -D \
eslint \
eslint-config-prettier \
eslint-plugin-node \
prettier \
@typescript-eslint/eslint-plugin \
@typescript-eslint/parser
curl -O https://gist.githubusercontent.com/cm-wada-yusuke/2002a761a00015dc913ea9222ce11496/raw/.eslintrc.js
curl -O https://gist.githubusercontent.com/cm-wada-yusuke/2002a761a00015dc913ea9222ce11496/raw/.prettierrc.json
yarn add -D \
husky \
lint-staged
husky と lint-staged はルートディレクトリの pakcage.json に設定する。リンターは各モノレポルートに設定する。単一プロジェクトのリポジトリの場合は、以下のように一緒に設定できる。
"scripts": {
"lint": "eslint --cache './**/*.{ts,tsx}' && prettier --check './**/*.{ts,tsx}'",
"lint-fix": "eslint --cache --fix './**/*.{ts,tsx}' && prettier --write './**/*.{ts,tsx}'",
"lint-staged": "lint-staged"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.ts": [
"yarn run lint-fix",
"yarn run lint",
"git add"
]
}
curl -O https://gist.githubusercontent.com/cm-wada-yusuke/2002a761a00015dc913ea9222ce11496/raw/.gitignore
nice 👍