9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VisualStudio CodeでNode.jsを実行するときに.envに定義したものをロードする

Posted at

Node.jsでアプリを作るときに、プログラム上には埋め込みたくない情報を、.envというファイルを作って管理する事が多いです。
例えば、以下のようなものがあるでしょうか。

.env
# Postgresql ENV
DATABASE_URL=postgres://postgres:password@localhost:5432/db

# Session Secret
SESSION_SECRET=KNLCKSO+JPOSJPOS

# NODE Environment
NODE_ENV=development

# JWT Secret
JWT_SECRET=@ofpowegldmvpvnp

今までのやり方

今までは、dotenvパッケージをインストールし、プログラム上に以下のように記述し、.envの内容をロードしていました。

sample.ts
import * as dotenv from 'dotenv';
dotenv.config();

これでもいいのですが、いちいちこう記述するのもめんどくさい。
Herokuにデプロイする事を考えると、そもそも必要ないことだし(Herokuでは、コンソールから環境変数を予め定義しますので、.envファイルそのものが必要ありません)

これは便利

何か他にいい方法はないものかと模索していましたら見つけました。
VisualStudo Codeに.envをロードする機能があるのです。
.vscodeフォルダにlaunch.jsonというプログラムの実行を定義するファイルがあります。
その定義の中に、envFileを追加し、.envのファイル名を指定すると、実行するときに.envの内容をロードしてくれます。

launch.json
{
    "version": "0.2.0",
    "configurations": [
        // nodeによるnode.jsのデバック設定
        {
            "type": "node",
            "request": "launch",
            "name": "node",
            "program": "${workspaceFolder}\\dist\\server\\server.js",
            "envFile": "${workspaceFolder}/.env", // ← ココ!!
            "sourceMaps": true
        }
    ],
}

これでコードを書くことなく、.envに定義したものを、process.env.XXXXXとして使えるようになります。
便利!!

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?