欧文
此软件包可用于生成不同环境的配置,用于一般的网络应用和前端. 这对具有被部署到不同管子(如推出)的单一构件的前端来说是有用的.
安装
npm i @dcl/ui-env
使用量
你需要创建一个 config 实例来传递所有想要的嵌入物的不同变量.
// config/env/dev|stg|prod.json
{
"FOO": "bar"
}
// config/index.ts
import { Env, createConfig } from '@dcl/ui-env'
import dev from './env/dev.json'
import stg from './env/stg.json'
import prod from './env/prod.json'
export const config = createConfig({
[Env.DEVELOPMENT]: dev,
[Env.STAGING]: stg,
[Env.PRODUCTION]: prod,
})
然后从代码基础的其他部分获得变量值
// some-file.ts
import { config } from './config'
const someVar = config.get('FOO') // "bar"
您可以通过默认值作为第二个参数
const someVar = config.get('NON_EXISTENT_VAR', 'defaultValue') // "defaultValue"
配置将会通过检查顶级域从正确的环境中取出值 :
Env.DEVELOPMENT: 如果 TLD 是.io或者说.zoneEnv.STAGING: 如果 TLD 是.net或者说.todayEnv.PRODUCTION: 如果 TLD 是.org
您可以通过一个查询参数来覆盖此逻辑 env 带值 dev, (中文(简体) ), stg 或者说 prod。参数名称及其值可以是大写或小写.
例如:
https://builder.decentraland.io?env=prod: 这将使用Env.PRODUCTIONhttp://localhost:3000?env=dev: 这将使用Env.DEVELOPMENT
如果找不到 TLD 且没有查询参数, 将使用默认环境, 即 Env.PRODUCTION。 。 。 .
如果您想要覆盖默认环境, 您可以使用环境 var DCL_DEFAULT_ENV, (中文(简体) ), REACT_APP_DCL_DEFAULT_ENV 或者说 VITE_DCL_DEFAULT_ENV 并设定值 dev, (中文(简体) ), stg 或者说 prod。 。 。 .
这对于配置当地环境或部署到Vercel's等其他非分散域可能有用.
例如:
# .env
REACT_APP_DCL_DEFAULT_ENV=dev
现在 http://localhost:3000 使用该 Env.DEVELOPMENT 配置无需通过查询参数.
测试
npm test
或有报道
npm run test:coverage
构建
npm run build
释放
要发布此软件包的新版本 新发行 通过 GitHub