Appearance
@mbjia/site-env
安装
bash
npm install @mbjia/site-env何时使用
| 场景 | 是否需要 |
|---|---|
| 需要读取当前环境、API host、主题配置 | 需要 |
| 业务组件或 services 需要正确请求后端 | 通常需要 |
| 只写纯展示页面且不请求接口 | 不一定需要 |
主要导出
- 构建环境:
isLocal、isDev、isTest、isPre、isPre2、isProd - 主题:
getThemeConfig、OEM 主题相关方法 - 域名:
API_ENV - 常量:
TOKEN_NAME、USER、USER_ID等
入口模块:
| 模块 | 说明 |
|---|---|
buildEnv | 构建环境和运行环境判断。 |
oemTheme | OEM/品牌主题、站点域名和主题配置。 |
domains | 内部资源域名判断和主站判断。 |
license | 实时预览、素材编辑、云剪辑 license 配置。 |
API_ENV
API_ENV.host 会按环境切换:
| 环境 | host |
|---|---|
| local | /api |
| OEM dev | //mbjia-api-dev3.atvideo.cc |
| dev/test | 测试 API |
| pre/pre2 | 预发 API |
| prod | 线上 API |
业务组件和 services 的接口地址都受这个包影响。
环境与域名
| 名称 | 类型 | 说明 |
|---|---|---|
MBJIA_ROOT_URL | string | 当前站点根路径,来自 getCurrentSitePath().root。 |
dev3 | string | OEM dev3 API 地址。 |
testHost | string | 测试环境 API 地址;轻应用会指向 lapp-dev。 |
preHost | string | 预发环境 API 地址;轻应用会指向 lapp-pre。 |
pre2Host | string | pre2 环境 API 地址。 |
onLineHost | string | 线上 API 地址;轻应用会指向 lapp。 |
API_ENV | { host: string; getTokenUrl: string } | 当前运行环境使用的 API 配置。 |
环境判断来自 buildEnv:
| 名称 | 说明 |
|---|---|
isLocal | 本地开发。 |
isDev / isTest | 测试环境。 |
isPre / isPre2 | 预发环境。 |
isProd / isMbjiaProd | 生产环境。 |
isOemDev | OEM 开发环境。 |
isLightApplication | 轻应用环境。 |
isAiSaas() | 判断是否 AI SaaS 来源。 |
getHost() | 获取当前 host。 |
getEnvKey() | 返回 dev、pre、pre2、mbjia_prod 或 prod。 |
域名工具来自 domains:
| 名称 | 说明 |
|---|---|
isInNet(url) | 判断是否内部资源域名。 |
selfWebsite() | 判断是否主站或默认来源。 |
主题工具来自 oemTheme:
| 名称 | 说明 |
|---|---|
getThemeConfig() | 获取当前主题完整配置。 |
getThemePage(path) | 获取页面主题配置。 |
isThemePageOpen(path, id) | 判断页面功能开关是否打开。 |
getThemeComponent(path) | 获取组件主题配置。 |
isThemeComponentOpen(path, id) | 判断组件功能开关是否打开。 |
isOemSite() / isOemTheme() | 判断是否 OEM 站点/主题。 |
getCurrentSitePath() | 获取当前主题下 root、jijian、aiCut、scriptEditor 地址。 |
getCurrentSiteAllPaths() | 获取所有站点路径集合。 |
themesSettings | 主题站点配置集合。 |
siteKey | 当前站点 key。 |
resolveUrls(urls) | 根据环境解析 URL。 |
bthTxtAndLogo() | 获取按钮文案与 logo 相关配置。 |
getTheme() | 获取当前主题 key。 |
getThemeSetting() | 获取当前主题站点配置。 |
AI_CLIP_URL / AI_CLIP_ALL_URL | AI 剪辑地址。 |
主题类型
主题配置来自 packages/site-env/themes。
ts
export interface BrandTheme {
id: string
name: string
logo: string
favicon: string
bg: string
variables?: Record<string, string>
license?: string
roles?: BrandThemeRole[] | Record<string, boolean>
components?: Record<string, BrandThemeComponent>
images: Record<string, string>
icons?: Record<string, string>
title?: string
pages?: Record<string, BrandThemePage>
colors?: Record<string, string>
}常用结构:
| 类型 | 说明 |
|---|---|
BrandTheme | 整个品牌主题。 |
BrandThemeComponent | 某个组件或模块的主题配置。 |
BrandThemePage | 页面级主题配置,包含图标、颜色、角色、图片和 options。 |
BrandThemeRole | 角色开关,包含 id 和 open。 |
ThemeType | 所有主题 key。 |
ComponentIdType | brand_mooliv.components 的组件 id。 |
PagesIdType | brand_mooliv.pages 的页面 id。 |
已登记主题:
| 主题 key |
|---|
brand_mooliv |
brand_huichuan |
brand_onechance |
brand_linkfox |
brand_wangkelai |
brand_driflow |
以及对应 _aicut、_jijian 变体 |