Denoでdotenvを使う際は、これまでサードパーティモジュールのx/dotenv
を使うのが一般的でした。
しかし、x/dotenv
は一旦標準ライブラリに移植されたものの、Deno CLI本体の機能に取り込まれたため、非推奨になっています。
。x/dotenv
ではなく、標準ライブラリの@std/dotenv
を使うようにしましょう
x/dotenv
や標準ライブラリではなく、実行時にコマンドラインフラグの--env
を使うようにしましょう
- import "https://deno.land/x/dotenv@v3.2.2/load.ts";
- deno run ./main.ts
+ deno run --env main.ts
▲x/dotenv
は「DEPRECATED」(非推奨)と書かれています。
--env
フラグの使い方
deno run
コマンドに--env
フラグを渡すと、自動でカレントディレクトリの.env
ファイルを読み取ってくれます。
GREETING=hello world
# コメントはこう書く
# カレントディレクトリの.envファイルを読み取る
$ deno run --env --allow-env=GREETING ./main.ts
console.log(Deno.env.get("GREETING"));
Denoにはセキュリティサンドボックス機能があるため、環境変数にアクセスする際は実行時に--allow-env
フラグを使用する必要があることに注意してください。
.env
以外のファイルを読み込みたい場合は、フラグにファイル名を指定します。
# カレントディレクトリの.envファイルを読み取る
$ deno run --env=./.env.development --allow-env=GREETING ./main.ts
deno deployで環境変数を設定する方法
deno deployはDenoを動かすことができるEdge Runtimeサービスです。
おそらく通常のユースケースでは、
- ローカルではdotenvファイルを使用して環境変数を管理
- deno deploy上では、deno deployの管理画面から環境変数を管理
のようになると思います。
そのため、.env
ファイルは.gitignore
でGit管理しないように設定した上で、deno deployの管理画面で環境変数を指定するのが一般的だと思います。
🍋Freshでdotenvを使用する方法
FreshはDeno社製のフレームワークです。preactを使用するDeno版のNext.jsのような立ち位置で、便利で使いやすいです。
Fresh v1.1.6より、.env
ファイルが自動で読み込まれるようになっています。
そのため、x/dotenv
や@std/dotenv
をimportしたり、--env
フラグを渡したりする必要はありません。
まとめ
-
x/dotenv
や標準ライブラリの@std/dotenv
ではなく、Deno本体の--env
フラグを使おう-
x/dotenv
は標準ライブラリの@std/dotenv
に移植された - その後、Deno本体に
--env
フラグが導入され、.env
ファイルを直接読み込めるようになった
-
- deno deployでは管理画面から環境変数を設定できる
- Freshでは何もしなくても.envファイルを読み込んでくれる