Başarıyla kullandığım ortam değişkenlerini yapmanın çok iyi bir yolu aşağıdadır:
A. Farklı yapılandırma dosyalarınız var :
dev.js // bunun yalnızca geliştirme amaçlı tüm ortam değişkenleri vardır
Dosya şunları içerir:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some DEV Value1',
someEnvKey2 : 'some DEV Value2'
};
stage.js // bunun yalnızca geliştirme amaçlı tüm ortam değişkenleri vardır
..
qa.js // yalnızca qa testi için tüm ortam değişkenlerine sahiptir
Dosya şunları içerir:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some QA Value1',
someEnvKey2 : 'some QA Value2'
};
NOT : değerler çoğunlukla ortamla değişir, ancak tuşlar aynı kalır.
daha fazlasına sahip olabilirsin
z__prod.js // bunun üretim / yalnızca canlı için tüm ortam değişkenleri vardır
NOT: Bu dosya dağıtım için hiçbir zaman paketlenmemiştir
Tüm bu yapılandırma dosyalarını / config / klasörüne koy
<projectRoot>/config/dev.js
<projectRoot>/config/qa.js
<projectRoot>/config/z__prod.js
<projectRoot>/setenv.js
<projectRoot>/setenv.bat
<projectRoot>/setenv.sh
NOT : Ürünün adı, herkes tarafından kullanılmayacağı için diğerlerinden farklıdır.
B. yapılandırma dosyasından Seti OS / Lambda / AzureFunction / GoogleCloudFunction ortam değişkenleri
Şimdi ideal olarak, dosyadaki bu yapılandırma değişkenleri OS ortam değişkenleri (veya LAMBDA işlev değişkenleri veya Azure işlev değişkenleri, Google Cloud İşlevleri vb.) Olarak gitmelidir.
bu nedenle, Windows işletim sisteminde (veya diğer) otomasyon yazıyoruz
Ayarlamak istediğimiz ortam olan bir argüman alan ' setenv ' yarasa dosyası yazdığımızı varsayın
Şimdi " setenv dev " komutunu çalıştırın
a) Girilen argüman değişkeninden girişi alır (şimdilik 'dev')
b) ilgili dosyayı okuyun ('config \ dev.js')
c) Windows işletim sistemindeki (veya diğer) ortam değişkenlerini ayarlar
Örneğin,
Setenv.bat içeriği şunlar olabilir:
node setenv.js
Setenv.js içeriği şunlar olabilir:
// import "process.env.ENV".js file (dev.js example)
// loop the imported file contents
// set the environment variables in Windows OS (or, Lambda, etc.)
Hepsi bu , ortamınız kullanıma hazır.
' Setenv qa ' yaptığınızda, tüm qa ortam değişkenleri qa.js'den kullanıma ve aynı program tarafından kullanılmaya hazır olur (her zaman process.env.someEnvKey1 öğesini ister, ancak aldığı değer qa'dır).
Umarım yardımcı olur.
fish
yerinebash
, kullanılan gerekir:env USER_ID=239482 my_command
. Örneğin, node.jsdebug
kütüphanesi için ortam değişkenlerini ayarlamak için :env DEBUG='*' node some_file.js
fishshell.com/docs/current/faq.html#faq-single-env