Երբևէ հայտնվե՞լ եք այնպիսի իրավիճակում, երբ ձեր հավելվածի զարգացման տարբեր փուլերի համար անհրաժեշտ են հարմարեցված միջավայրի փոփոխականներ: Ահա մի տողով լուծում

Մշակումը շատ ավելի հեշտ է եղել .env ֆայլի գյուտից ի վեր: Դուք կարող եք հեշտությամբ սահմանել ձեր միջավայրի փոփոխականները և արժեքները ENV_VARIABLE=VALUE շարահյուսությամբ և բումով: Այս փոփոխականները բեռնվել են որպես ձեր միջավայրի փոփոխականներ՝ հնարավոր դարձնելով դրանց արագ մուտքը.

console.log(process.env.ENV_VARIABLE)

Եթե ​​դուք դեռ մտածում եք, թե ինչ է նշանակում այս ամենը, լավ, դուք, հավանաբար, նոր եք .env ֆայլում: Դա իրականում պարզ կազմաձևման տեքստային ֆայլ է, որն օգտագործվում է որոշ փոփոխականներ սահմանելու համար, որոնք ցանկանում եք փոխանցել ձեր հավելվածի միջավայր:

Այս ֆայլին անհրաժեշտ է վերլուծիչի նման մի բան, որպեսզի այն աշխատի: Վերլուծիչը կարդում է փոփոխականների սահմանումները մեկ առ մեկ և վերլուծում դրանք շրջակա միջավայրին: Այն օգտագործում է ENV_VARIABLE=VALUE ձևաչափը (Node.js-ի դեպքում՝ process.env[ENV_VARIABLE]=VALUE):

Իհարկե, սա Node.js-ում ներկառուցված հատկություն չէ: Դուք պետք է այն մշակեք հանրաճանաչ մոդուլի միջոցով, որը կոչվում է dotenv:

Դա լավ լուծում է, քանի որ այն իսկապես հեշտացրել է զարգացումը համահեղինակ մշակողների և ընդհանուր առմամբ մշակողների համայնքի միջև: Անձամբ ես օգտագործում էի dotenv մոդուլը, մինչև որ մոլորվեցի` փորձելով գտնել լուծում, որը կարող էր ստիպել ինձ օգտագործել այլ կազմաձևման ֆայլ որոշակի միջավայրի համար: Դա նույնիսկ ավելի թույն կլիներ… չէ՞: Այո՛ Բայց ցավոք, dotenvմոդուլը մեզ չի տալիս այս լավը:

Ուրեմն ի՞նչ է հաջորդը: Մեզ անհրաժեշտ է այս բանը, որպեսզի հեշտացնենք մշակումն ու փորձարկումը զարգացման տարբեր փուլերում

Ի՞նչ կասեք մաքսային .env ֆայլերի մասին տարբեր միջավայրի փուլերի համար:

Չե՞ք կարծում, որ դա լավ լուծում կլինի: Սահմանո՞ւմ եք հարմարեցված միջավայրի փոփոխականներ՝ պարզապես ստեղծելով .env.envname ֆայլ: Հիասքանչ Դա այն է, ինչ եկել է custom-env:

Custom env-ը գրադարան է, որը ստեղծվել է զարգացումն ավելի դյուրին դարձնելու համար՝ թույլատրելով բազմաթիվ .env կոնֆիգուրացիա տարբեր միջավայրերի համար: Սա արվում է .env.envname ֆայլից միջավայրի փոփոխականները բեռնելով հանգույցի process.env օբյեկտում:

Տեղադրում

Պարզապես վերցրեք այն հետևյալ հրամանով.

npm i custom-env

Օգտագործումը

require('custom-env').env()

Լռելյայնորեն, custom-env ընտրում է .env ֆայլը ձեր մշակողի փուլի համար: Այնուամենայնիվ, մեկ այլ փուլի համար հարմարեցնելու համար ավելացրեք անունը որպես վերջածանց, ինչպես .env.envname:-ում:

Օրինակ

Մենք կարող ենք սահմանել հարմարեցված միջավայրի փոփոխական բեմադրման մշակման համար

  • Ստեղծեք .env.staging ֆայլ
  • Սահմանեք ձեր փոփոխականները
APP_ENV=staging
APP_NAME=custom environment app
DB_HOST=localhost
DB_USER=user
DB_PASS=pass
  • Մուտք գործեք ձեր փոփոխականները
// Require custom-env and set your preferred env file

require ('custom-env').env('staging')
console.log(process.env.APP_ENV)
console.log(process.env.APP_NAME)
console.log(process.env.DB_HOST)
console.log(process.env.DB_PASS)

Սպասվող արդյունք

staging
custom environment app
localhost
user
pass

Դա այն է, բավականին հեշտ: Ազատորեն սահմանեք ավելի շատ փոփոխականներ տարբեր փուլերի համար, որոնք դուք կարծում եք, որ ունեք, օրինակ՝

.env.testing, .env.staging, .env.server1, .env.server2, .env.localhost

Սահմանել ընթացիկ միջավայրը

Դուք կարող եք ասել custom-env-ին օգտագործել այնպիսի կազմաձև, որը համապատասխանում է ձեր զարգացման ընթացիկ փուլին` փոխանցելով trueenv() մեթոդ.

Օրինակ

Ֆայլ՝ index.js

// Pass true to env() to make it use the current environment stage.
 require('custom-env').env(true)
console.log(process.env.APP_NAME)
console.log(process.env.USERNAME)
console.log(process.env.PASSKEY)

Այժմ եկեք սահմանենք բեմականացման կազմաձևման ֆայլ.

Ֆայլ՝ .env.staging

APP_NAME=Staging Node App
USER_NAME=John
PASSKEY=J*h*

Այժմ եկեք սպասարկենք հանգույցը բեմական միջավայրով.

NODE_ENV=staging node index.js

Սպասվող արդյունք

Ահա՛,

Ամբողջական փաստաթղթեր

custom-env-ի ամբողջական փաստաթղթերի համարայցելեք npm էջըhttps://www.npmjs.com/package/custom-env

Աղբյուրի կոդը

Դուք կարող եք ստանալ կամ նպաստել custom-envաղբյուրային կոդը https://github.com/erisanolasheni/custom-env հասցեով:

Ուրախ կոդավորում