Cara yang sangat baik untuk melakukan variabel lingkungan yang berhasil saya gunakan adalah di bawah ini:
A. Memiliki file konfigurasi yang berbeda :
dev.js // ini memiliki semua variabel lingkungan hanya untuk pengembangan
File ini berisi:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some DEV Value1',
someEnvKey2 : 'some DEV Value2'
};
stage.js // ini memiliki semua variabel lingkungan untuk pengembangan saja
..
qa.js // ini memiliki semua variabel lingkungan untuk pengujian qa saja
File ini berisi:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some QA Value1',
someEnvKey2 : 'some QA Value2'
};
CATATAN : nilainya berubah dengan lingkungan, sebagian besar, tetapi kunci tetap sama.
Anda dapat memiliki lebih banyak
z__prod.js // ini memiliki semua variabel lingkungan untuk produksi / hanya hidup.
CATATAN: File ini tidak pernah digabungkan untuk digunakan
Masukkan semua file konfigurasi ini ke / config / folder
<projectRoot>/config/dev.js
<projectRoot>/config/qa.js
<projectRoot>/config/z__prod.js
<projectRoot>/setenv.js
<projectRoot>/setenv.bat
<projectRoot>/setenv.sh
CATATAN : Nama prod berbeda dari yang lain, karena tidak akan digunakan oleh semua.
B. Atur variabel lingkungan OS / Lambda / AzureFunction / GoogleCloudFunction dari file konfigurasi
Sekarang idealnya, variabel konfigurasi ini dalam file, harus pergi sebagai variabel lingkungan OS (atau, variabel fungsi LAMBDA, atau, variabel fungsi Azure, Fungsi Google Cloud, dll.)
jadi, kami menulis otomatisasi di OS Windows (atau lainnya)
Asumsikan kita menulis file bat ' setenv ', yang mengambil satu argumen yaitu lingkungan yang ingin kita atur
Sekarang jalankan " setenv dev "
a) Ini mengambil input dari variabel argumen yang diteruskan ('dev' untuk saat ini)
b) membaca file yang sesuai ('config \ dev.js')
c) menetapkan variabel lingkungan di OS Windows (atau lainnya)
Sebagai contoh,
Konten setenv.bat mungkin:
node setenv.js
Konten setenv.js mungkin:
// import "process.env.ENV".js file (dev.js example)
// loop the imported file contents
// set the environment variables in Windows OS (or, Lambda, etc.)
Itu saja , lingkungan Anda siap digunakan.
Ketika Anda melakukan ' setenv qa ', semua variabel lingkungan qa akan siap digunakan dari qa.js, dan siap untuk digunakan oleh program yang sama (yang selalu meminta process.env.someEnvKey1, tetapi nilai yang didapat adalah qa satu).
Semoga itu bisa membantu.
fish
bukanbash
, Anda perlu menggunakan:env USER_ID=239482 my_command
. Misalnya, untuk mengatur variabel lingkungan untukdebug
pustaka node.js ' :env DEBUG='*' node some_file.js
fishshell.com/docs/current/faq.html#faq-single-env