ការកំណត់រចនាសម្ព័ន្ធអថេរបរិស្ថាន
មាតិកា៖
សង្ខេប
បញ្ហា
យើងចង់ឱ្យកម្មវិធីរបស់យើងអាចកំណត់រចនាសម្ព័ន្ធបានហួសពីវត្ថុ/ប្រព័ន្ធគោលពីរ/កូដប្រភព ដើម្បីឱ្យការ build មួយអាចដំណើរការខុសគ្នាអាស្រ័យលើបរិស្ថានដាក់ពង្រាយរបស់វា។
ដើម្បីសម្រេចបានរឿងនេះ យើងចង់ប្រើការកំណត់រចនាសម្ព័ន្ធអថេរបរិស្ថាន។
យើងចង់គ្រប់គ្រងការកំណត់រចនាសម្ព័ន្ធដោយប្រើឯកសារដែលយើងអាចត្រួតពិនិត្យកំណែបាន។
យើងចង់ផ្តល់ភាពងាយស្រួលខ្លះដល់បទពិសោធន៍អ្នកអភិវឌ្ឍន៍ ដូចជាការដឹងថាអ្វីខ្លះអាចកំណត់រចនាសម្ព័ន្ធបាន និងតម្លៃលំនាំដើមដែលពាក់ព័ន្ធ។
ការសម្រេចចិត្ត
បានសម្រេចជ្រើសឯកសារ .env ជាមួយឯកសារលំនាំដើមដែលពាក់ព័ន្ធ និងឯកសារគ្រោងការណ៍។
ស្ថានភាព
បានសម្រេច។ បើកចំហក្នុងការពិចារណាសមត្ថភាពថ្មីៗនៅពេលដែលវាកើតមាន។
ព័ត៌មានលម្អិត
ការសន្មត់
យើងពេញចិត្តនឹងការញែកកូដកម្មវិធី និងកូដបរិស្ថានចេញពីគ្នា។ យើងសន្មត់ថាកម្មវិធីត្រូវដំណើរការខុសគ្នាក្នុងបរិស្ថានផ្សេងៗ ដូចជាបរិស្ថានអភិវឌ្ឍន៍ បរិស្ថានសាកល្បង បរិស្ថានបង្ហាញ បរិស្ថានផលិតកម្ម ។ល។
យើងពេញចិត្តនឹងការអនុវត្តរបស់ឧស្សាហកម្ម “12 factor app” ហើយកាន់តែពេញចិត្តនឹងការអនុវត្តពាក់ព័ន្ធ “15 factor app”។
គម្រោងមុនៗរបស់យើងជាច្រើនបានប្រើអនុសញ្ញាឯកសារ .env ឬថត .env ស្រដៀងគ្នា។ មានការអនុវត្តធម្មតាក្នុងការទុកទាំងនេះក្រៅពីការត្រួតពិនិត្យកំណែ ហើយប្រើវិធីផ្សេងដើម្បីដាក់ពង្រាយវា កំណត់កំណែវា និងគ្រប់គ្រងវា។
ឧបសគ្គ
យើងចង់រក្សាសម្ងាត់ឱ្យនៅក្រៅប្រព័ន្ធត្រួតពិនិត្យកំណែ (VCS) នៃការគ្រប់គ្រងកូដប្រភព (SCM) របស់យើង។
យើងចង់ខិតខំសម្រាប់ភាពត្រូវគ្នាជាមួយក្របខ័ណ្ឌកម្មវិធី និងបណ្ណាល័យពេញនិយម។ ឧទាហរណ៍ Node មានម៉ូឌុល “dotenv” សម្រាប់អានការកំណត់រចនាសម្ព័ន្ធអថេរបរិស្ថាន។
ជំហរ
យើងបានពិចារណាវិធីសាស្ត្រមួយចំនួន៖
ផ្ទុកការកំណត់រចនាសម្ព័ន្ធក្នុងកម្មវិធី ដូចជាក្នុងឯកសារ
config.js។ផ្ទុកការកំណត់រចនាសម្ព័ន្ធក្នុងបរិស្ថាន ដូចជាក្នុងឯកសារ
.env។ទាញយកការកំណត់រចនាសម្ព័ន្ធពីទីតាំងដែលស្គាល់ ដូចជាម៉ាស៊ីនមេអាជ្ញាប័ណ្ណ។
អាគុយម៉ង់
យើងបានជ្រើសវិធីសាស្ត្រឯកសារ .env ព្រោះ៖
វាពេញនិយម រួមទាំងក្នុងចំណោមអ្នកជំនាញ។
វាអនុវត្តតាមគំរូឯកសារ
.envដែលក្រុមរបស់យើងបានប្រើដោយជោគជ័យជាច្រើនដងលើគម្រោងជាច្រើន។វាសាមញ្ញ។ ជាពិសេស យើងពេញចិត្តសម្រាប់ពេលនេះជាមួយការដោះដូរសំខាន់ៗដែលយើងឃើញ ដូចជាការខ្វះសមត្ថភាពសវនកម្មធៀបនឹងវិធីសាស្ត្រម៉ាស៊ីនមេអាជ្ញាប័ណ្ណ។
ផលវិបាក
យើងត្រូវរកវិធីញែកការកំណត់រចនាសម្ព័ន្ធអថេរបរិស្ថានដែលជាសាធារណៈ ចេញពីការគ្រប់គ្រងសម្ងាត់ណាមួយ។
ពាក់ព័ន្ធ
ការសម្រេចចិត្តពាក់ព័ន្ធ
យើងរំពឹងថាកម្មវិធីទាំងអស់របស់យើងប្រើវិធីសាស្ត្រនេះ។
យើងនឹងគ្រោងធ្វើបច្ចុប្បន្នភាពកម្មវិធីណាមួយរបស់យើងដែលប្រើវិធីសាស្ត្រដែលមានសមត្ថភាពតិចជាង ដូចជាការសរសេរបង្ខំក្នុងប្រព័ន្ធគោលពីរ ឬក្នុងកូដប្រភព។
យើងនឹងរក្សាកម្មវិធីណាមួយរបស់យើងដែលប្រើវិធីសាស្ត្រដែលមានសមត្ថភាពច្រើនជាងឱ្យនៅដដែល ដូចជាម៉ាស៊ីនមេអាជ្ញាប័ណ្ណ។
តម្រូវការពាក់ព័ន្ធ
យើងនឹងបន្ថែមសមត្ថភាព devops សម្រាប់ឯកសារ រួមទាំង hook តេស្ត និងការរួមបញ្ចូលជាបន្តបន្ទាប់។
យើងត្រូវបណ្តុះបណ្តាលមិត្តរួមក្រុមអ្នកអភិវឌ្ឍន៍ទាំងអស់អំពីការសម្រេចចិត្តនេះ។
វត្ថុពាក់ព័ន្ធ
ផ្នែកនីមួយៗដែលយើងដាក់ពង្រាយនឹងត្រូវការឯកសារ .env និងឯកសារពាក់ព័ន្ធផ្ទាល់ខ្លួន។
គោលការណ៍ពាក់ព័ន្ធ
អាចត្រឡប់វិញបានយ៉ាងងាយ។
កំណត់ចំណាំ
ឧទាហរណ៍ឯកសារ .env៖
NAME=Alice Anderson
EMAIL=alice@example.com
ឧទាហរណ៍ឯកសារ .env.defaults៖
NAME=Joe Doe
EMAIL=joe@example.com
ឧទាហរណ៍ឯកសារ .env.schema ដែលមានតែសោ៖
NAME
EMAIL