Skip to content

简介

进程状态与路径工具模块。提供环境检测、进程类型检查和路径获取函数,是其他模块获取运行时环境信息的基础依赖。所有路径信息来自 boot 时写入的 process.env 环境变量。

导入

javascript
// 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?)

说明:获取构建输出目录。 参数

参数类型必填说明
basePathstring基础路径,默认 process.cwd()

返回值string{basePath}/public/electron

getElectronCodeDir(basePath?)

说明:获取 electron 源码目录。 参数

参数类型必填说明
basePathstring基础路径,默认 process.cwd()

返回值string{basePath}/electron

getFrontendCodeDir(basePath?)

说明:获取前端源码目录。 参数

参数类型必填说明
basePathstring基础路径,默认 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?)

说明:退出当前进程。 参数

参数类型必填说明
codenumber退出码,默认 0

返回值never — 此函数永不返回(终止进程)。 示例

javascript
import { exit } from 'ee-core/ps';
exit(1); // 以退出码 1 退出

exitChildJob(code?)

说明:退出 ChildJob 类型的子进程。检查 process.argv[2] 判断是否为 ChildJob 进程。仅 ChildJob 进程会退出;其他类型的子进程不受影响。 参数

参数类型必填说明
codenumber退出码,默认 0

返回值void参见:jobs 模块 — ChildJob 进程在 argv 中设置 type: 'childJob'示例

javascript
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 模块 — ChildPoolJobLoadBalancer

getArgumentByName(name, args?)

说明:从命令行参数中获取指定名称的参数值。搜索格式:--name=value参数

参数类型必填说明
namestring参数名(不含 -- 前缀)
argsstring[]参数数组,默认 process.argv

返回值string | undefined — 参数值,未找到时为 undefined示例

javascript
import { getArgumentByName } from 'ee-core/ps';
// 如果 process.argv 包含 '--env=prod'
const envValue = getArgumentByName('env'); // 'prod'

makeMessage(msg?)

说明:格式化 IPC 消息对象,用默认值填充缺失字段。 参数

参数类型必填说明
msgPartial<{ channel: string; event: string; data: unknown }>部分消息字段

返回值{ channel: string; event: string; data: unknown } — 带默认值的完整消息对象(channel: ''event: ''data: {})。