Node.js v20.6.0 から コマンドラインでの環境変数ファイルの指定がbuilt-inしていました。
Command-line API | Node.js v20.14.0 Documentation
これまでは環境変数を指定するには dotenv
といった別のモジュールに依存するのが通例でしたが、
--env-file
flagをつけることで環境変数を指定することができるようになりました。
$ node --env-file=.env main.js
ただ、 ts-node
にはこのフラグがついていません。
そのため、ts-node
で適用するには下記のように実行します。
$ node -r ts-node/register --env-file=.env main.ts
-r
は指定したモジュールをpreloadするためのフラグです。
Command-line API | Node.js v22.2.0 Documentation
これはあくまでワークアラウンドという感じなので、将来的には ts-node
単体でも指定できるようになりそうです。
(Next.jsといったフレームワークに慣れていると正直フラグなしでも適用されてほしい気持ちになります🥺)
ちなみに、Deno も dotenv
をimportして呼び出さないといけないので、built-inではないようです。
import { load } from "https://deno.land/std@0.224.0/dotenv/mod.ts"; const env = await load(); const password = env["PASSWORD"];
Environment variables | Deno Docs