简介
进程状态与路径工具模块。提供环境检测、进程类型检查和路径获取函数,是其他模块获取运行时环境信息的基础依赖。所有路径信息来自 boot 时写入的 process.env 环境变量。
导入
// CJS
const { allEnv, env, isProd, isDev, getDataDir, getLogDir } = require('ee-core/ps');
// ESM
import { allEnv, env, isProd, isDev, getDataDir, getLogDir } from 'ee-core/ps';API
allEnv()
说明:获取当前进程的所有环境变量。 返回值:NodeJS.ProcessEnv — 完整的 process.env 对象。
env()
说明:获取当前环境名称。 返回值:string — 环境名称:'dev'、'local'、'prod',未设置时为空字符串。
isProd()
说明:是否为生产环境(EE_ENV === 'prod')。 返回值:boolean — 生产环境时为 true。
isDev()
说明:是否为开发环境(EE_ENV === 'dev' 或 'local')。 返回值:boolean — 开发环境时为 true。
isRenderer()
说明:是否为渲染进程(process.type === 'renderer')。 返回值:boolean — 渲染进程时为 true。
isMain()
说明:是否为主(browser)进程(process.type === 'browser')。 返回值:boolean — 主进程时为 true。
isForkedChild()
说明:是否为通过 child_process.fork 创建的 Node 子进程(ELECTRON_RUN_AS_NODE === 1)。 返回值:boolean — fork 子进程时为 true。
processType()
说明:获取当前进程类型字符串。 返回值:string — 'browser'、'renderer' 或 'child'。无匹配时为空字符串。
appName()
说明:从 EE_APP_NAME 获取应用名称。 返回值:string — 应用名称,未设置时为空字符串。
appVersion()
说明:从 EE_APP_VERSION 获取应用版本。 返回值:string — 应用版本,未设置时为空字符串。
getDataDir()
说明:获取数据存储路径。开发模式:{baseDir}/data。生产环境:{userHome}/.{appName}/data。OpenHarmony:使用自定义应用目录以兼容权限。 返回值:string — 绝对数据目录路径。
getLogDir()
说明:获取日志存储路径。开发模式:{baseDir}/logs。生产环境:{userHome}/.{appName}/logs。OpenHarmony:使用自定义应用目录以兼容权限。 返回值:string — 绝对日志目录路径。
getBundleDir(basePath?)
说明:获取构建输出目录。 参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| basePath | string | 否 | 基础路径,默认 process.cwd() |
返回值:string — {basePath}/public/electron。
getElectronCodeDir(basePath?)
说明:获取 electron 源码目录。 参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| basePath | string | 否 | 基础路径,默认 process.cwd() |
返回值:string — {basePath}/electron。
getFrontendCodeDir(basePath?)
说明:获取前端源码目录。 参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| basePath | string | 否 | 基础路径,默认 process.cwd() |
返回值:string — {basePath}/frontend。
getRootDir()
说明:获取根目录。开发模式:项目根目录(baseDir)。生产环境:app 用户数据目录。 返回值:string — 绝对根目录路径。
getBaseDir()
说明:获取项目根目录(EE_BASE_DIR)。 返回值:string — 项目根目录,未设置时为空字符串。
getElectronDir()
说明:获取业务代码所在的 electron 目录(EE_ELECTRON_DIR)。 返回值:string — electron 目录路径,未设置时为空字符串。
getPublicDir()
说明:获取公共静态资源目录。 返回值:string — {baseDir}/public。
getExtraResourcesDir()
说明:获取额外资源目录。打包后路径因平台不同:
- Windows/Linux:
{execDir}/resources/extraResources - macOS:
{execDir}/../Resources/extraResources - OpenHarmony:
{execDir}/../Resources/extraResources
打包前:{execDir}/build/extraResources。 返回值:string — 绝对额外资源目录路径。
getAppUserDataDir()
说明:获取 Electron appUserData 目录(EE_APP_USER_DATA)。 返回值:string — app 用户数据目录,未设置时为空字符串。
getExecDir()
说明:获取可执行文件目录(EE_EXEC_DIR)。打包后为 exe/dmg/deb 所在目录。 返回值:string — 可执行文件目录路径,未设置时为空字符串。
getUserHomeDir()
说明:获取操作系统用户主目录(EE_USER_HOME)。OpenHarmony:返回 appUserData 目录以兼容权限。 返回值:string — 用户主目录路径,未设置时为空字符串。
getUserHomeHiddenAppDir()
说明:获取用户主目录下的隐藏应用目录。用于生产环境中存储数据、日志等持久文件。 返回值:string — {userHome}/.{appName}/。
getUserHomeAppDir()
说明:获取用户主目录下的应用目录(非隐藏)。 返回值:string — {userHome}/{appName}/。
getAppCustomDataDir()
说明:获取应用自定义数据目录。用于 OpenHarmony 等用户主目录不可写的环境。 返回值:string — {appUserData}/{appName}/。
getSocketPort()
说明:获取内置 Socket 服务端口编号。 返回值:number — Socket 服务端口,未设置时为 0。 参见:socket 模块 — SocketServer 在初始化时设置此端口。
getHttpPort()
说明:获取内置 HTTP 服务端口编号。 返回值:number — HTTP 服务端口,未设置时为 0。 参见:socket 模块 — HttpServer 在初始化时设置此端口。
isPackaged()
说明:是否已打包(生产环境,EE_IS_PACKAGED === 'true')。 返回值:boolean — 已打包时为 true。
exit(code?)
说明:退出当前进程。 参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| code | number | 否 | 退出码,默认 0 |
返回值:never — 此函数永不返回(终止进程)。 示例:
import { exit } from 'ee-core/ps';
exit(1); // 以退出码 1 退出exitChildJob(code?)
说明:退出 ChildJob 类型的子进程。检查 process.argv[2] 判断是否为 ChildJob 进程。仅 ChildJob 进程会退出;其他类型的子进程不受影响。 参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| code | number | 否 | 退出码,默认 0 |
返回值:void参见:jobs 模块 — ChildJob 进程在 argv 中设置 type: 'childJob'。 示例:
import { exitChildJob } from 'ee-core/ps';
exitChildJob(); // 仅在当前进程为 ChildJob 时退出isChildJob()
说明:判断当前进程是否为 ChildJob 类型。检查 process.argv[2] 中的 type 字段。 返回值:boolean — 当前进程为 ChildJob 时为 true。 参见:jobs 模块 — ChildJob。
isChildPoolJob()
说明:判断当前进程是否为 ChildPoolJob 类型。检查 process.argv[2] 中的 type 字段。 返回值:boolean — 当前进程为 ChildPoolJob 时为 true。 参见:jobs 模块 — ChildPoolJob、LoadBalancer。
getArgumentByName(name, args?)
说明:从命令行参数中获取指定名称的参数值。搜索格式:--name=value。 参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 参数名(不含 -- 前缀) |
| args | string[] | 否 | 参数数组,默认 process.argv |
返回值:string | undefined — 参数值,未找到时为 undefined。 示例:
import { getArgumentByName } from 'ee-core/ps';
// 如果 process.argv 包含 '--env=prod'
const envValue = getArgumentByName('env'); // 'prod'makeMessage(msg?)
说明:格式化 IPC 消息对象,用默认值填充缺失字段。 参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| msg | Partial<{ channel: string; event: string; data: unknown }> | 否 | 部分消息字段 |
返回值:{ channel: string; event: string; data: unknown } — 带默认值的完整消息对象(channel: ''、event: ''、data: {})。
