问题描述
README_CN.md 明确宣称:
✅ 完全离线运行 - 解压即用,无需网络
✅ 零下载(全部预装)
❌ 需要网络:不需要
但实际查看 start.bat 的代码逻辑:
- 首次运行时检测
node\node.exe 是否存在,不存在则联网下载 Node.js 22.16.0 (~30MB)
- 检测
openclaw-pkg\node_modules\openclaw 是否存在,不存在则 npm install openclaw (~30MB+)
这与宣传严重不符。在无网络环境(企业内网、离线场景、网吧)下首次运行将 100% 失败。
复现路径
- 从 Release 下载 zip 解压到 U 盘
- 在无网络的 Windows 10 机器上双击
start.bat
- 结果:
[ERROR] Failed to download Node.js.
根本原因
当前 Release 中 没有预置 node/ 目录和 openclaw-pkg/ 目录,脚本仅提供下载引导逻辑,并非真正的离线包。
修复方案(分阶段)
阶段一:修复 README(紧急,1 小时内可完成)
将 README 中的表述改为诚实描述,例如:
| 需要网络(首次) | ✅ 需要(自动下载 ~60MB) | ❌ 不需要(需预先准备离线包)|
或新增「模式说明」章节:
- 在线模式(当前默认):首次联网自动安装,后续可离线
- 离线模式(计划中):需下载完整包,彻底离线
阶段二:构建真正离线的 Release 包(核心目标)
在 GitHub Actions CI 中构建 Release 时,自动将以下内容打包:
OpenClaw-Portable-vX.X.X-windows/
├── node/ ← 预置 node-v22.x.x-win-x64 解压内容
│ ├── node.exe
│ ├── npm.cmd
│ └── node_modules/npm/ ← npm 本体
├── openclaw-pkg/
│ └── node_modules/
│ └── openclaw/ ← npm pack 后离线安装的 openclaw
├── data/ ← 用户数据目录(初始为空)
├── workspace/
├── start.bat
├── stop.bat
└── check.bat
构建脚本思路(build-release.sh):
#!/usr/bin/env bash
NODE_VER="22.16.0"
OUTDIR="dist/OpenClaw-Portable-windows"
# 1. 下载 Node.js Windows 版本
curl -fsSL "https://nodejs.org/dist/v${NODE_VER}/node-v${NODE_VER}-win-x64.zip" -o node.zip
unzip -q node.zip
mv "node-v${NODE_VER}-win-x64" "${OUTDIR}/node"
# 2. 用捆绑的 node/npm 离线安装 openclaw
mkdir -p "${OUTDIR}/openclaw-pkg"
"${OUTDIR}/node/node.exe" "${OUTDIR}/node/node_modules/npm/bin/npm-cli.js" \
install -g openclaw \
--prefix "${OUTDIR}/openclaw-pkg" \
--registry https://registry.npmmirror.com
# 3. 复制脚本
cp start.bat stop.bat check.bat config/ "${OUTDIR}/"
# 4. 打包
zip -r "OpenClaw-Portable-v${VERSION}-windows.zip" "${OUTDIR}/"
阶段三:GitHub Actions 自动化
新增 .github/workflows/release.yml:
name: Build Release
on:
push:
tags: ['v*']
jobs:
build-windows:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Windows portable package
run: bash build-release.sh
- name: Upload Release Asset
uses: softprops/action-gh-release@v2
with:
files: OpenClaw-Portable-*-windows.zip
预期效果
完成后,用户体验应为:
- 从 Release 下载
OpenClaw-Portable-vX.X.X-windows.zip(约 200-700MB)
- 解压到 U 盘
- 双击
start.bat → 检测到 node\node.exe 已存在 → 直接跳到安装检测 → 检测到 openclaw 已存在 → 直接启动
- 全程无需任何网络连接 ✅
优先级
🔴 P0 - 阻断性问题:当前核心卖点(离线便携)无法实现,影响所有用户的第一印象和信任度。
本 issue 由 AI 代码审阅自动生成,如有疑问欢迎讨论。
问题描述
README_CN.md 明确宣称:
但实际查看
start.bat的代码逻辑:node\node.exe是否存在,不存在则联网下载 Node.js 22.16.0 (~30MB)openclaw-pkg\node_modules\openclaw是否存在,不存在则 npm install openclaw (~30MB+)这与宣传严重不符。在无网络环境(企业内网、离线场景、网吧)下首次运行将 100% 失败。
复现路径
start.bat[ERROR] Failed to download Node.js.根本原因
当前 Release 中 没有预置
node/目录和openclaw-pkg/目录,脚本仅提供下载引导逻辑,并非真正的离线包。修复方案(分阶段)
阶段一:修复 README(紧急,1 小时内可完成)
将 README 中的表述改为诚实描述,例如:
或新增「模式说明」章节:
阶段二:构建真正离线的 Release 包(核心目标)
在 GitHub Actions CI 中构建 Release 时,自动将以下内容打包:
构建脚本思路(
build-release.sh):阶段三:GitHub Actions 自动化
新增
.github/workflows/release.yml:预期效果
完成后,用户体验应为:
OpenClaw-Portable-vX.X.X-windows.zip(约 200-700MB)start.bat→ 检测到node\node.exe已存在 → 直接跳到安装检测 → 检测到 openclaw 已存在 → 直接启动优先级
🔴 P0 - 阻断性问题:当前核心卖点(离线便携)无法实现,影响所有用户的第一印象和信任度。