⚠️

TypeScript実行用のtsxを使うときには環境変数に気をつけよう

2025/03/05に公開

tsx --env-file .env の罠

tsx --env-file .env を使うと、環境変数を設定した .env ファイルを使って TypeScript を実行できます。しかし、記述の仕方によって process.env の挙動が変わる点に注意が必要です。

罠の例

.env ファイルに以下のように記述すると:

hoge="fuga"

実行時の値は以下のようになります:

console.log(process.env.hoge); // fuga

しかし、イコールの前にスペースを含めてしまうと:

hoge = "fuga"

実行時の値は "fuga" (ダブルクオーテーション付きの文字列)になってしまいます。
シングルクォーテーションでも同様です。

console.log(process.env.hoge); // "fuga"

回避策

tsxで環境変数を使いたいとき,
.env では余計なスペースを入れないのが重要です。

✅ 正しい記述:

hoge=fuga

これなら process.env.hoge は fuga になります。

⚠️ .env はシンプルな KEY=VALUE 形式で書きましょう!

Discussion