Prisma は import するだけで dotenv(.env) を読み込む

Published: 2023/9/27


問題

NestJS で ConfigService を、公式ドキュメントに従い設定していて、 ignoreEnvFile のオプションを指定したにも関わらず、 process.env.env のファイルが読み込まれている事象に遭遇したため、いろいろ調べていた。

原因: Prisma が勝手に dotenv/config 相当のことを行っていた

Prisma は、 node.js 側から利用するためのインターフェイスである、 @prisma/client のパッケージを import するだけで、プロジェクトルートの .env ファイルを、 dotenv パッケージを利用して読み込んでいる。

現状ではこの issue は open であるため、 prisma を利用するプロジェクトでは、 dotenv はむしろ main.ts の冒頭に import 'dotenv/config' するなどして、 nodejs モジュールの import 順に依らず process.env の値を確定していくことがベターなアプローチであると考えられる。

// main.ts
import 'dotenv/config'

// それ以外の全て

Tags: prismadotenv