@ flatfile/ cross- env- config
@flatfile/cross-env-config 是一个轻量级,零依赖性的跨环境配置注册,在Node.js和浏览器环境中都有效. 它旨在提供一个一致的方法,在JavaScript的不同类型环境中获取环境变量和配置值.
安装
您可以安装 @flatfile/cross-env-config 使用 npm :
npm install @flatfile/cross-env-config
或与雅尔曰:
yarn add @flatfile/cross-env-config
基本用途
用于 @flatfile/cross-env-config,首先导入 CrossEnvConfig 类 :
import { CrossEnvConfig } from '@flatfile/cross-env-config'
然后,你可以使用 get 获取环境变量值的方法:
const value = CrossEnvConfig.get('MY_ENV_VAR')
这将首先检查是否为此密钥设置了任何覆盖功能, 然后检查附加的配置注册, 附加的配置工厂, 最后检查环境变量 .
设置覆盖
您可以使用 set 方法 :
CrossEnvConfig.set('MY_ENV_VAR', 'my value')
此值将优先于所附的配置注册、配置工厂和环境变量.
使用配置登记册
您可以附加一个对象作为配置注册。 如果您想要将您的配置值存储到环境变量之外的地方, 则此选项是有用的 :
const myConfig = {
MY_ENV_VAR: 'my value',
ANOTHER_ENV_VAR: 'another value',
}
CrossEnvConfig.attachConfigRegistry(myConfig)
本登记册中的数值将优先于所附的配置工厂和环境变量,但不能优先于任何上下置值.
使用配置工厂
可以附加一个功能来作为配置厂. 如果您需要动态生成配置值, 这一点是有用的 :
CrossEnvConfig.attachConfigFactory((key) => {
return `Value for ${key}`
})
该工厂生产的值将优先于环境变量,但不能优先于任何被覆盖或所附的配置登记册.
使用异名
如果对不同的环境有不同的命名构造,则可以使用 alias 将一个密钥映射到另一个密钥的方法 :
CrossEnvConfig.alias('MY_ENV_VAR', 'MY_ALIAS')
在这种情况下,如果 CrossEnvConfig.get('MY_ALIAS') 在覆盖、注册、工厂或环境中找不到“MY ALIAS”的值,它将返回“MY ENV-VAR”的值.
浏览器和节点.js的安全性
@flatfile/cross-env-config 用于在浏览器和Node.js环境中安全工作。 它检查类型 process 尝试访问前的变量 process.env,因此不会在浏览器环境中引起错误 process.env 未定义。 它在尝试使用之前还要检查其注册和工厂的类型,因此如果设置不当就不会被打破.