🧞
main.tsの場所をsrc内の別ディレクトリに変更する際のProjen設定方法
🎯 はじめに
Projenを使ってAWS CDKプロジェクトを管理している場合、main.ts
のデフォルトの場所は通常src/main.ts
です。しかし、事情によりmain.ts
をpath/to/main.ts
に変更したいケースがあります。
このブログ記事では、main.ts
のパスを変更する場合に必要なProjenの設定について解説します。
💡 プロジェクト構造(例)
プロジェクト全体の構造は非公開としますが、重要なポイントは以下のディレクトリ構造です。
├── src/
│ └── path/
│ └── to/
│ └── main.ts # CDKのエントリポイント
└── projenrc.ts
変更理由
特定の事情で、CDKのエントリポイントであるmain.ts
をpath/to/main.ts
に配置する必要がありました。この変更に対応するためのProjenの設定を説明します。
🔧 必要な設定変更
Projenでは、AwsCdkTypeScriptApp
の設定でappEntrypoint
を変更することで、cdk.json
に適切なエントリポイントを設定できます。
projenrc.ts
変更後の以下のようにappEntrypoint
オプションを設定します。
import { awscdk } from 'projen';
const project = new awscdk.AwsCdkTypeScriptApp({
defaultReleaseBranch: 'main',
name: 'example-project',
projenrcTs: true,
cdkVersion: '2.174.1',
// エントリポイントの変更
appEntrypoint: 'path/to/main.ts',
});
project.synth();
解説
-
appEntrypoint
:cdk.json
のapp
プロパティに対応する設定です。このオプションをsrc/path/to/main.ts
に設定することで、cdk deploy
をルートディレクトリから実行できるようになります。
🛠 Projenの再生成
設定変更後、以下のコマンドを実行してcdk.json
などのファイルを再生成します。
npx projen
cdk.json
の確認
生成される以下のようにcdk.json
が生成されていることを確認します:
{
"app": "npx ts-node -P tsconfig.json --prefer-ts-exts src/path/to/main.ts"
}
🚀 デプロイの実行
設定が完了したら、ルートディレクトリでcdk deploy
を実行します。
npx cdk deploy
これで、main.ts
がsrc/path/to/main.ts
にある状態でも、問題なくデプロイできるはずです!
📝 まとめ
Projenを使ったAWS CDKプロジェクトで、エントリポイントをデフォルトのsrc/main.ts
からsrc/path/to/main.ts
に変更する必要がある場合は、appEntrypoint
オプションを使って簡単に対応できます。
以下のステップを忘れずに実行してください:
-
main.ts
をsrc/path/to/main.ts
に移動 -
projenrc.ts
でappEntrypoint
を設定 -
yarn projen
でProjenの再生成 - ルートから
cdk deploy
を実行
これで、Projenを活用した効率的なプロジェクト管理が実現できます!
Discussion