Hai! Ini adalah artikel pertama saya (jadi tenangkan saya dalam komen?). Saya teruja untuk berkongsi projek kecil yang saya telah kerjakan yang datang daripada keperluan peribadi. Jika anda pernah bergelut dengan mengurus konfigurasi dalam aplikasi Node.js anda, anda mungkin mendapati pakej pergantungan sifar kecil ini menarik. Ia dipanggil json-to-env-converter.
Apakah itu json-to-env-converter?
json-to-env-converter ialah pakej npm yang menukar objek JSON kepada pembolehubah persekitaran. Ia adalah alat ringan yang direka untuk membantu anda mengendalikan konfigurasi berasaskan JSON dengan menukarnya kepada pembolehubah persekitaran dan menyuntiknya ke dalam process.env; ia bertujuan untuk senario di mana konfigurasi mungkin dinamik, bersarang atau diperoleh daripada API atau sistem luaran.
Inilah ideanya: Daripada menetapkan pembolehubah persekitaran secara manual untuk konfigurasi kompleks atau dinamik, anda boleh memuatkannya secara pemrograman daripada objek JSON dan mengaksesnya sama seperti mana-mana pembolehubah persekitaran yang lain.
Mengapa Saya Membinanya?
Baru-baru ini saya telah membina api rahsia dan untuk setiap projek yang saya sedang kerjakan secara peribadi; Saya memanggil api rahsia saya untuk mendapatkan konfigurasi saya semasa runtime yang disediakan dalam format json. Juga apatah lagi dalam konfigurasi aplikasi moden dan besar boleh berubah bergantung pada lokasi pengguna, atau faktor dinamik lain. Walaupun fail .env bagus untuk persediaan statik, ia tidak mudah dikendalikan:
Saya membina json-to-env-converter untuk meneroka cara untuk menangani isu ini sekali lagi ia lebih kepada projek untuk kegunaan peribadi dan ia pastinya tidak bertujuan untuk menggantikan alat seperti dotenv, sebaliknya untuk mengendalikan kes penggunaan yang sedikit berbeza ; dan saya fikir apa salahnya menjadikannya sumber terbuka dan menerbitkannya secara terbuka di npm dan saya sangat gembira jika sesiapa mendapati menggunakannya.
Cara Ia Berfungsi
Pasang pakej daripada npm:
npm i json-to-env-converter
Berikut ialah contoh mudah untuk menunjukkan fungsinya:
Contoh Asas
import { jsonToEnv } from 'json-to-env-converter'; const config = { database: { host: 'localhost', port: 5432, }, }; jsonToEnv(config); console.log(process.env.DATABASE_HOST); //Output: 'localhost' console.log(process.env.DATABASE_PORT); //Output: '5432'
Ini mengambil objek JSON dan menukarnya kepada pembolehubah persekitaran. Ia juga meratakan kunci bersarang, jadi database.host menjadi DATABASE_HOST.
Menambah Awalan
Untuk mengelakkan perlanggaran, anda boleh menambah awalan:
jsonToEnv(config, { prefix: 'MYAPP_' }); console.log(process.env.MYAPP_DATABASE_HOST); //Output: 'localhost'
Kes Penggunaan: Konfigurasi Dinamik
Satu kes penggunaan yang berpotensi untuk pakej ini ialah mengendalikan konfigurasi dinamik. Sebagai contoh, bayangkan anda mempunyai aplikasi global yang mengambil tetapan khusus rantau pada masa jalan. Daripada mengurus fail .env secara manual untuk setiap rantau, anda boleh memuatkan tetapan yang betul secara dinamik berdasarkan lokasi pengguna:
npm i json-to-env-converter
Ini membolehkan apl anda menyesuaikan konfigurasinya tanpa memerlukan dimulakan semula atau nilai berkod keras.
Perlukah Anda Menggunakannya?
Sejujurnya, saya masih memutuskan sejauh mana pakej ini berguna secara meluas. Jika anda sudah selesa dengan fail .env dan konfigurasi statik, anda mungkin tidak memerlukan alat ini. Tetapi jika anda bekerja dengan:
dan tidak berpuas hati dengan persediaan semasa anda maka json-to-env-converter mungkin menjimatkan masa anda dan patut dicuba.
Pemasangan dan Maklum Balas
Jika anda ingin mencubanya, anda boleh memasangnya daripada npm:
import { jsonToEnv } from 'json-to-env-converter'; const config = { database: { host: 'localhost', port: 5432, }, }; jsonToEnv(config); console.log(process.env.DATABASE_HOST); //Output: 'localhost' console.log(process.env.DATABASE_PORT); //Output: '5432'
Saya ingin mendengar pendapat, maklum balas anda atau yang paling penting cadangan untuk penambahbaikan, jadi jangan ragu untuk menyebut dalam ulasan di sini atau serahkan permintaan tarik pada repo github saya https://github.com/neenus/json-to -env. Ini adalah pengalaman pembelajaran untuk saya dan saya teruja untuk melihat ke mana ia pergi.
Oh dan satu lagi... terima kasih kerana membaca artikel pertama saya!
Atas ialah kandungan terperinci Daripada JSON kepada Pembolehubah Persekitaran: Memperkenalkan json-to-env-converter. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!