このブログははてなブログからの移行記事です。
nodeのコード中で環境変数を書き換えたい
そう思って以下の様なことをしてみました。
process.env.LOCAL_ENV = undefined; /* ~略~ */ if (_.isUndefined(process.env.LOCAL_ENV)) { console.log('LOCAL_ENV is not specified'); }
しかし何回やってもprocess.env.LOCAL_ENVにundefinedが入ってることにならない…
process.env.HOGEにはstring型しか入らない
きちんとDocumentに書いてありました。
process Node.js v6.1.0 Manual & Documentation
process.envから生えるオブジェクトをundefinedにしたい場合は何を代入してもstring型になるのでdelete句を使う必要があります。
// 間違い ('undefined'という文字列がセットされるだけ) process.env.LOCAL_ENV = undefined; // こうするべき delete process.env.LOCAL_ENV;
テスト書いてるとき見事にハマりました。。。 よく考えればわかることだった。。。