OpenClaw源码解析1-加载入口
entry.ts(Node.js CLI 入口)OpenClaw 官方 CLI 工具的 Node.js 主入口(命令行工具,用于部署、容器、配置、密钥管理等)。它是整个命令行工具的总开关,职责是:环境初始化 → 参数解析 → 自重启 → 快速路径处理 → 启动主 CLI。我会逐行、逐模块、逐函数完整拆解,让你彻底理解它的设计与运行逻辑。一、先搞懂:这是什么文件?路径:src/entry.ts→ 编译为entry.js角色:OpenClaw CLI 的顶层入口(openclaw命令执行时第一个运行的文件)语言:TypeScript(ESM 模块)运行环境:Node.js核心能力:进程守护、参数预处理、环境隔离、快速响应、自重启二、完整代码逐段深度解析1. 顶部 Shebang + 依赖导入typescript运行#!/usr/bin/env node import { spawn } from "node:child_process"; import { enableCompileCache } from "node:module"; import process from "node:process"; import { fileURLToPath } from "node:url"; // CLI 参数解析 import { isRootHelpInvocation, isRootVersionInvocation } from "./cli/argv.js"; import { parseCliContainerArgs, resolveCliContainerTarget } from "./cli/container-target.js"; import { applyCliProfileEnv, parseCliProfileArgs } from "./cli/profile.js"; import { normalizeWindowsArgv } from "./cli/windows-argv.js"; // 自重启逻辑 import { buildCliRespawnPlan } from "./entry.respawn.js"; // 基础工具 import { isTruthyEnvValue, normalizeEnv } from "./infra/env.js"; import { isMainModule } from "./infra/is-main.js"; import { ensureOpenClawExecMarkerOnProcess } from "./infra/openclaw-exec-env.js"; import { installProcessWarningFilter } from "./infra/warning-filter.js"; import { attachChildProcessBridge } from "./process/child-process-bridge.js";作用:#!/usr/bin/env node:告诉系统这是Node.js 可执行脚本导入 Node 原生模块:进程、子进程、URL、模块缓存导入 CLI 专用工具:参数解析、容器、环