はじめに
現在Reactとsupabaseで開発を行っているのですが、.envファイルというものが登場してきて環境変数などの周辺の知識が浅いなと思ったのでまとめます
環境変数とは?
まずはみんな大好きWikipedia
環境変数(かんきょうへんすう、英語: environment variable)はオペレーティングシステム (OS) が提供するデータ共有機能の一つ。OS上で動作するタスク(プロセス)がデータを共有するための仕組みである。特にタスクに対して外部からデータを与え、タスクの挙動・設定を変更するために用いる。
Wikipediaより引用
わかるようなわからないような、微妙なラインですね。
簡単にいうなれば、環境変数とはOSがもつグローバル変数という認識でよいかと思います。
linuxなどを使っている方ならコマンドラインで次のコマンドを打つと確認できます。
$ env #$はターミナルにもともと書いてあります。
.envファイルって何?
.envファイルに登録した値を環境変数として設定することが出来ます。
MY_VALUE=123
GREETING="Hello"
nodejsの環境ならば上記の環境変数を以下のように参照することが出来ます。
console.log(process.env.MY_VALUE) // 出力: 123
console.log(process.env,GREETING) //出力: Hello
nodejsでの環境変数
はじめに環境変数をOSがもつグローバルな変数と説明しましたが、nodejsの環境では少し意味が違ってくるようです。
環境変数と名前がついているように、
何かの環境がグローバルにもつ変数という認識に汎用性があるように思います。
nodejsでは、サーバーを立てた時に.envに記述されている変数を環境変数として設定します。nodejsの実行環境にてグローバルに参照できる変数を環境変数と呼ぶらしいです。
.envの使い道
基本的に接頭に.がつくファイルは隠しファイルとなっていて、よりセンシティブ・隠したいものを記述するファイルになっています。envはただの名前です。
現在僕はsupabaseとreactでWEBアプリ開発をしているのですが、supabaseのapiキーなどを管理するために使用します。
apiキーなどが公開されてしまうと多額の請求が飛んでくることがあるのでみなさんもご注意ください!
githubにpushする際はapiキーが公開されないように!!!
終わりに
環境変数への理解が少し深まってよかったです。でもまぁあまり低レイヤーのことで沼らないように気を付けたいと思います(汗