⚠️
TypeScript実行用のtsxを使うときには環境変数に気をつけよう
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