Jawaban @ luke hampir yang saya butuhkan! Terima kasih.
Karena jawaban yang dipilih sangat mudah (dan benar), tetapi sudah lama, saya ingin menawarkan alternatif untuk mengimpor variabel dari file terpisah .env ketika menjalankan skrip Anda dan memperbaiki beberapa batasan pada jawaban Luke. Coba ini:
::: File .env :::
# This way, you CAN use comments in your .env files
NODE_PATH="src/"
# You can also have extra/empty lines in it
SASS_PATH="node_modules:src/styles"
Kemudian, di paket json Anda, Anda akan membuat skrip yang akan mengatur variabel dan menjalankannya sebelum skrip yang Anda butuhkan:
::: package.json :::
scripts: {
"set-env": "export $(cat .env | grep \"^[^#;]\" |xargs)",
"storybook": "npm run set-env && start-storybook -s public"
}
Beberapa pengamatan:
Ekspresi reguler dalam perintah cat grep'ed akan menghapus komentar dan baris kosong.
The &&
tidak perlu menjadi "terpaku" untuk npm run set-env
, karena akan diperlukan jika Anda menetapkan variabel dalam perintah yang sama.
Jika Anda menggunakan benang, Anda mungkin melihat peringatan, Anda dapat mengubahnya yarn set-env
atau menggunakannya npm run set-env --scripts-prepend-node-path &&
.
Lingkungan yang berbeda
Keuntungan lain saat menggunakannya adalah Anda dapat memiliki variabel lingkungan yang berbeda.
scripts: {
"set-env:production": "export $(cat .production.env | grep \"^[^#;]\" |xargs)",
"set-env:development": "export $(cat .env | grep \"^[^#;]\" |xargs)",
}
Tolong, ingatlah untuk tidak menambahkan file .env ke repositori git Anda ketika Anda memiliki kunci, kata sandi atau data pribadi yang masuk akal!