Skip to content

useENV

提供一些环境变量,用于判断当前访问的所属环境。

TIP

本方法导出的所有变量均为普通变量,不具备响应性。

runtimeEnv

当前项目所处的运行时环境。

TIP

判断运行时环境,非部署环境,常用于服务端代码区分运行时,详见 区分运行时环境

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations:
ts
/**
 * 运行时环境类型
 */
export type RuntimeEnv =
  // 开发环境
  | 'development'
  // 生产环境
  | 'production'
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { runtimeEnv } = useENV()
console.log(runtimeEnv) // development

isDevRuntime

用于判断当前项目是否运行在开发环境。

TIP

判断运行时环境,非部署环境,常用于服务端代码区分运行时,详见 区分运行时环境

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isDevRuntime } = useENV()
if (isDevRuntime) {
  console.log('当前是开发环境运行时')
}

isProdRuntime

用于判断当前项目是否运行在生产环境。

TIP

判断运行时环境,非部署环境,常用于服务端代码区分运行时,详见 区分运行时环境

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isProdRuntime } = useENV()
if (isProdRuntime) {
  console.log('当前是生产环境运行时')
}

env

当前项目所部署的环境。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations:
ts
/**
 * 部署环境类型
 */
export type Env =
  // 测试环境
  | 'dev'
  // 预发环境
  | 'uat'
  // 生产环境
  | 'prod'
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { env } = useENV()
console.log(env) // dev

isDev

用于判断当前项目是否部署在测试环境。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isDev } = useENV()
if (isDev) {
  console.log('当前是测试环境')
}

isUat

用于判断当前项目是否部署在预发环境。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isUat } = useENV()
if (isUat) {
  console.log('当前是预发环境')
}

isProd

用于判断当前项目是否部署在生产环境。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isProd } = useENV()
if (isProd) {
  console.log('当前是生产环境')
}

ua

用户代理信息( navigator.userAgent ),会转为全小写。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: string
  • Returns: navigator.userAgent.toLowerCase() | ''
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { ua } = useENV()
if (ua) {
  console.log('本次访问来自浏览器')
}

isMobile

用于判断当前设备是否为手机。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isMobile } = useENV()
if (isMobile) {
  console.log('当前是手机访问')
}

isDesktop

用于判断当前设备是否为桌面(俗称 PC )。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isDesktop } = useENV()
if (isDesktop) {
  console.log('当前是 PC 访问')
}

isAndroid

用于判断当前平台是否为安卓系统。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isAndroid } = useENV()
if (isAndroid) {
  console.log('当前是安卓用户')
}

isIOS

用于判断当前平台是否为 iOS 系统。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isIOS } = useENV()
if (isIOS) {
  console.log('当前是 iOS 用户')
}

isApp

用于判断当前浏览器是否为 App 内置 Webview 。

TIP

该变量是用于识别是否处于 App 内置的 Webview ,如果需要区分是否处于 Hybrid App 本身的环境,请使用 isHybrid

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isApp } = useENV()
if (isApp) {
  console.log('当前在 App 里访问')
}

isWeixin

用于判断当前浏览器是否为微信内置浏览器。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isWeixin } = useENV()
if (isWeixin) {
  console.log('当前在微信里访问')
}

isQQ

用于判断当前浏览器是否为 QQ 浏览器(包括手机 QQ 内置浏览器)。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isQQ } = useENV()
if (isQQ) {
  console.log('当前在 QQ 里访问')
}

isQQBrowser

用于判断当前浏览器是否为 QQ 浏览器(非手机 QQ )。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isQQBrowser } = useENV()
if (isQQBrowser) {
  console.log('当前在独立安装的 QQ 浏览器里访问')
}

isQzone

用于判断当前浏览器是否为 QQ 空间内置浏览器。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isQzone } = useENV()
if (isQzone) {
  console.log('当前在独立安装的 QQ 空间内置浏览器里访问')
}

isWeibo

用于判断当前浏览器是否为微博内置浏览器。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isWeibo } = useENV()
if (isWeibo) {
  console.log('当前在微博里访问')
}

isBaidu

用于判断当前浏览器是否为百度 App 内置浏览器。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isBaidu } = useENV()
if (isBaidu) {
  console.log('当前在百度 App 里访问')
}

isClient

用于 SSR / SSG / Pre-Rendering 项目区分客户端环境(浏览器)。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isClient } = useENV()
if (isClient) {
  console.log('当前是客户端')
}

isServer

用于 SSR / SSG / Pre-Rendering 项目区分服务端环境。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isServer } = useENV()
if (isServer) {
  console.log('当前是服务端')
}

isHybrid

用于 NoWindow 项目区分 Node.js Server 服务端和 Hybrid App 环境。

  • Supported Platforms:
Browser
Electron
App
Server
Scriptlet
  • Type Declarations: boolean
  • Example:
ts
import { useENV } from '@lunarxyz/core'

const { isHybrid } = useENV()
if (isHybrid) {
  console.log('当前是 Hybrid App')
}

Released under the MIT License.