Skip to content

[核心缺陷] README 宣称「完全离线」但实际首次运行需联网下载 Node.js 和 OpenClaw #40

@SonicBotMan

Description

@SonicBotMan

问题描述

README_CN.md 明确宣称:

完全离线运行 - 解压即用,无需网络
零下载(全部预装)
❌ 需要网络:不需要

但实际查看 start.bat 的代码逻辑:

  1. 首次运行时检测 node\node.exe 是否存在,不存在则联网下载 Node.js 22.16.0 (~30MB)
  2. 检测 openclaw-pkg\node_modules\openclaw 是否存在,不存在则 npm install openclaw (~30MB+)

这与宣传严重不符。在无网络环境(企业内网、离线场景、网吧)下首次运行将 100% 失败。


复现路径

  1. 从 Release 下载 zip 解压到 U 盘
  2. 在无网络的 Windows 10 机器上双击 start.bat
  3. 结果:[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

预期效果

完成后,用户体验应为:

  1. 从 Release 下载 OpenClaw-Portable-vX.X.X-windows.zip(约 200-700MB)
  2. 解压到 U 盘
  3. 双击 start.bat → 检测到 node\node.exe 已存在 → 直接跳到安装检测 → 检测到 openclaw 已存在 → 直接启动
  4. 全程无需任何网络连接

优先级

🔴 P0 - 阻断性问题:当前核心卖点(离线便携)无法实现,影响所有用户的第一印象和信任度。


本 issue 由 AI 代码审阅自动生成,如有疑问欢迎讨论。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug🐛 Bug - Something isn't workingdocumentation📖 Docs - Documentation improvements

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions