2017-08-08 16 views
0

私はノードjsスクリプトの3項演算子コンパイルに問題があります。値がboolean falseが、comparsion結果常にtrueなぜ は、私はいつもfile_dev.zipかかわらずprocess.env.TESTING値のノードjs三項演算子なぜcomparsionがうまくいかないのですか?

console.log(process.env.TESTING); // false 
console.log(process.env.TESTING ? 'dev' : 'prod'); // always 'dev' 

function zip(fileName) {...} 
process.env.TESTING = false; 
zip(`${file}_${process.env.TESTING ? 'dev' : 'prod'}.zip`) 

しかし、ファイル名を持っていますか?

+1

それは 'false'を、または' 'false'' ...か! – deceze

+0

'process.env'は常に文字列を含みます。 'false'の代わりに' 'false''(=文字列)があります。 – marvinhagemeister

答えて

1
process.env.VARIABLE 

として比較を書き換える必要があります。

process.env.VARIABLE === 'false'? 'prod':'dev' 
+1

'!! 'false''も' true' ... – deceze

+0

それからあなたは==' false 'を使ってチェックすべきだと思います –

1

を期待通りに

しかし、ブラウザのコンソールは、この値は環境から来る場合、その値は文字列'false'ではありません動作しますか? console.log(typeof process.env.TESTING)でそれが真偽であることを確認できますか?それは文字列であることが判明した場合

は、あなたはいつもfalse'false'を可能とfalseブールません文字列として値を格納process.env.TESTING == 'false' ? 'prod' : 'dev'

関連する問題