🧞

main.tsの場所をsrc内の別ディレクトリに変更する際のProjen設定方法

2025/01/09に公開

🎯 はじめに

Projenを使ってAWS CDKプロジェクトを管理している場合、main.tsのデフォルトの場所は通常src/main.tsです。しかし、事情によりmain.tspath/to/main.tsに変更したいケースがあります。

このブログ記事では、main.tsのパスを変更する場合に必要なProjenの設定について解説します。


💡 プロジェクト構造(例)

プロジェクト全体の構造は非公開としますが、重要なポイントは以下のディレクトリ構造です。

├── src/
│   └── path/
│       └── to/
│           └── main.ts  # CDKのエントリポイント
└── projenrc.ts

変更理由

特定の事情で、CDKのエントリポイントであるmain.tspath/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.jsonappプロパティに対応する設定です。このオプションを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.tssrc/path/to/main.tsにある状態でも、問題なくデプロイできるはずです!


📝 まとめ

Projenを使ったAWS CDKプロジェクトで、エントリポイントをデフォルトのsrc/main.tsからsrc/path/to/main.tsに変更する必要がある場合は、appEntrypointオプションを使って簡単に対応できます。

以下のステップを忘れずに実行してください:

  1. main.tssrc/path/to/main.tsに移動
  2. projenrc.tsappEntrypointを設定
  3. yarn projen でProjenの再生成
  4. ルートからcdk deployを実行

これで、Projenを活用した効率的なプロジェクト管理が実現できます!

Discussion