【process.env】node.jsでプロジェクトごとに環境変数を設定する
circleCIに環境変数を仕込んだものの、ローカルで動かせないじゃんってなった。
どうにかしてプロジェクトごとに環境変数を追加できないかなと思って調べているとdotenv
というnodeモジュールに出会ったのでメモ
どうするの
プロジェクトルートに.env
ファイルをつくる
USER = nauycolony PASSWORD = password
node.jsで使えるようにする
dotenvというnode_moduleをつかうのでインストールする。 yarnでも、npmでも、使ってる方でどうぞ。
yarn add dotenv
npm i dotenv
動かすスクリプトファイルで次のように記述。
require('dotend').config();
こうすることで、process.env
というオブジェクトに.env
の内容をぶちこんでくれる
プロジェクト固有の変数を作れる。
使ってみる
普通にオブジェクトとして使えるので、ブラケット記法なりなんなりで参照する。
console.log(process.env.USER) // nayucolony console.log(process.env.PASSWORD) // password
あとは、.env
ファイルをgitに含めずにアップすれば、認証につかうユーザー名とかパスワードなんかをリポジトリにあげずに認証を通したりできるということだ。
絶対に.env
ファイルをリポジトリにあげないように。
process.envってなに
環境変数をまとめて管理するオブジェクト。
中身を見たければ次のようにする。
console.log(process.env)
一例としては以下のようなオブジェクトがでてくる。
{ SHELL: 'usr/local/bin/zdh', VISUAL: 'vim' . . . }
通したPATHとか、色々とここに全部集約されている。
通常、マシン全体で使うものだが、dotenv
をつかうとプロジェクト固有の数値も持たせることができる。