您好!这是我的第一篇文章(所以请在评论中对我宽容一些?)。我很高兴分享我一直在从事的一个小项目,该项目是出于个人需要。如果您曾经努力管理 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中文网其他相关文章!