こんにちは!これは私の初めての記事です (コメントはお手柔らかにお願いします?)。個人的なニーズから生まれた、私が取り組んでいる小さなプロジェクトを共有できることを嬉しく思います。 Node.js アプリケーションの構成管理に苦労したことがある場合は、この依存関係のない小さなパッケージが興味深いと感じるかもしれません。これは json-to-env-converter と呼ばれます。
json-to-env-converter とは何ですか?
json-to-env-converter は、JSON オブジェクトを環境変数に変換する npm パッケージです。これは、JSON ベースの構成を環境変数に変換し、process.env に挿入することで、JSON ベースの構成を処理できるように設計された軽量ツールです。これは、構成が動的、ネストされている、または API または外部システムから供給されるシナリオを対象としています。
アイデアは次のとおりです。複雑な構成や動的な構成の環境変数を手動で設定する代わりに、JSON オブジェクトからプログラムで環境変数をロードし、他の環境変数と同じようにアクセスできます。
なぜそれを構築したのか?
私は最近、個人的に取り組んでいるすべてのプロジェクト用にシークレット API を構築しました。私はシークレット 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'
使用例: 動的構成
このパッケージの潜在的な使用例の 1 つは、動的構成の処理です。たとえば、実行時に地域固有の設定を取得するグローバル アプリケーションがあると想像してください。各地域の .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 でプル リクエストを送信してください。 -環境これは私にとって学習経験であり、今後の展開が楽しみです。
ああ、もう 1 つ...私の最初の記事を読んでいただきありがとうございます!
以上がJSON から環境変数へ: json-to-env-converter の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。