您好!這是我的第一篇文章(所以請在評論中對我寬容一些?)。我很高興分享我一直在從事的一個小項目,該項目是出於個人需求。如果您曾經努力管理 Node.js 應用程式中的配置,您可能會發現這個小的零依賴套件很有趣。它被稱為 json-to-env-converter。
什麼是 json-to-env-converter?
json-to-env-converter 是一個 npm 套件,可將 JSON 物件轉換為環境變數。它是一個輕量級工具,旨在幫助您處理基於JSON 的配置,方法是將其轉換為環境變數並將其註入到process.env 中;它適用於配置可能是動態的、嵌套的或來源自我API 或外部系統的場景。
想法是這樣的:您可以透過程式設計方式從 JSON 物件載入它們並像任何其他環境變數一樣存取它們,而不是手動設定複雜或動態配置的環境變數。
我為什麼要建造它?
我最近為我個人正在從事的每個專案建立了一個秘密 API;我正在呼叫我的 Secrets api 以在運行時獲取以 json 格式提供的配置。更不用說在現代和大型應用程式中,配置可以根據用戶位置或其他動態因素而改變。雖然 .env 檔案非常適合靜態設置,但它們不容易處理:
我建立了json-to-env-converter 來再次探索解決這些問題的方法,它更多的是供個人使用的項目,它絕對不是為了取代像dotenv 這樣的工具,而是為了處理稍微不同的用例;我想將其開源並在npm 上公開發布有什麼壞處,如果有人發現使用它,我會很高興。
如何運作
從 npm 安裝軟體包:
npm i json-to-env-converter
這是一個簡單的例子來展示它的作用:
基本範例
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'
這需要一個 JSON 物件並將其轉換為環境變數。它還會展平巢狀鍵,因此database.host 成為DATABASE_HOST。
加上前綴
為了避免衝突,您可以加上前綴:
jsonToEnv(config, { prefix: 'MYAPP_' }); console.log(process.env.MYAPP_DATABASE_HOST); //Output: 'localhost'
用例:動態設定
此套件的一個潛在用例是處理動態配置。例如,假設您有一個全域應用程序,可以在運行時取得特定於區域的設定。您可以根據使用者的位置動態載入正確的設置,而不是手動管理每個區域的 .env 檔案:
npm i json-to-env-converter
這允許您的應用程式調整其配置,而無需重新啟動或硬編碼值。
你應該使用它嗎?
老實說,我仍在決定這個包的用途有多大。如果您已經熟悉 .env 檔案和靜態配置,則可能不需要此工具。但如果您正在使用:
並且對您目前的設定不滿意,那麼 json-to-env-converter 可能會節省您一些時間,值得一試。
安裝與回饋
如果您想嘗試一下,可以從 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'
我很想聽聽您的想法、反饋或最重要的改進建議,因此請隨時在此處的評論中提及或在我的github 存儲庫上提交拉取請求https://github.com /neenus/json-to -env。這對我來說是一次學習經歷,我很高興看到它的發展方向。
哦,還有一件事...謝謝您閱讀我的第一篇文章!
以上是從 JSON 到環境變數:介紹 json-to-env-converter的詳細內容。更多資訊請關注PHP中文網其他相關文章!