

projenのprojenrcをJSからTSにする(projenrcTs: true)
この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。
projenrc.jsで書いてたプロジェクトをTypeScript化した。手順自体はそんなに複雑じゃないけど、途中でprojenを2回走らせる必要があるのを忘れがちなのでメモしておく。
やったこと
1. projectオプションに projenrcTs: true を追加する
const project = new awscdk.AwsCdkConstructLibrary({ // ... projenrcTs: true, // ...});project.synth();2. 一旦projenを実行する
npx projenこの時点ではまだ .projenrc.js のまま。
3. .projenrc.js を .projenrc.ts にリネームする
git mv .projenrc.js .projenrc.ts4. requireをimportに書き換える
// beforeconst { awscdk, javascript } = require('projen');
// afterimport { awscdk, javascript } from 'projen';5. もう一度projenを実行する
npx projenこれで完了。
気づき
projenrcTs: trueを追加しただけの状態でprojenを走らせても、ファイルの中身がJSのままだと動かない。リネームとimport化はあくまで手動作業で、projen側は面倒を見てくれない。- 2回projenを実行するのは、1回目でTS向けの依存関係(ts-node系)を入れて、2回目で実際に
.projenrc.tsを読ませるため、という理解。ここは未確認。
ファイル作成用コマンドは以下。
touchp src/content/article/2023/02/projen-projenrc-js-to-ts.md