mirror of
https://github.com/hotwa/luci-app-openclaw.git
synced 2026-03-30 20:25:44 +00:00
release: v1.0.1 — 14 项 bug 修复、ARM64 musl Node.js 构建
This commit is contained in:
42
scripts/build-node-musl.sh
Executable file
42
scripts/build-node-musl.sh
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/bin/sh
|
||||
# 在 Alpine ARM64 Docker 容器内运行
|
||||
# 环境变量: NODE_VER (目标版本号), /output (输出目录)
|
||||
set -e
|
||||
|
||||
apk add --no-cache nodejs npm xz
|
||||
|
||||
ACTUAL_VER=$(node --version | sed 's/^v//')
|
||||
echo "Alpine Node.js version: v${ACTUAL_VER} (requested: v${NODE_VER})"
|
||||
|
||||
# 打包为 portable tarball (与官方 tarball 相同结构)
|
||||
PKG_NAME="node-v${NODE_VER}-linux-arm64-musl"
|
||||
PKG_DIR="/tmp/${PKG_NAME}"
|
||||
mkdir -p "${PKG_DIR}/bin" "${PKG_DIR}/lib/node_modules" "${PKG_DIR}/include/node"
|
||||
|
||||
cp "$(which node)" "${PKG_DIR}/bin/"
|
||||
chmod +x "${PKG_DIR}/bin/node"
|
||||
|
||||
# 复制 npm
|
||||
if [ -d /usr/lib/node_modules/npm ]; then
|
||||
cp -r /usr/lib/node_modules/npm "${PKG_DIR}/lib/node_modules/"
|
||||
fi
|
||||
|
||||
# 创建 npm wrapper
|
||||
printf '#!/bin/sh\nexec "$(dirname "$0")/node" "$(dirname "$0")/../lib/node_modules/npm/bin/npm-cli.js" "$@"\n' \
|
||||
> "${PKG_DIR}/bin/npm"
|
||||
# 创建 npx wrapper
|
||||
printf '#!/bin/sh\nexec "$(dirname "$0")/node" "$(dirname "$0")/../lib/node_modules/npm/bin/npx-cli.js" "$@"\n' \
|
||||
> "${PKG_DIR}/bin/npx"
|
||||
chmod +x "${PKG_DIR}/bin/npm" "${PKG_DIR}/bin/npx"
|
||||
|
||||
# 验证
|
||||
echo "=== Verification ==="
|
||||
"${PKG_DIR}/bin/node" --version
|
||||
"${PKG_DIR}/bin/node" -e "console.log(process.arch, process.platform, process.versions.modules)"
|
||||
"${PKG_DIR}/bin/npm" --version 2>/dev/null || echo "npm wrapper created"
|
||||
|
||||
# 打包
|
||||
cd /tmp
|
||||
tar cJf "/output/${PKG_NAME}.tar.xz" "${PKG_NAME}"
|
||||
ls -lh "/output/${PKG_NAME}.tar.xz"
|
||||
echo "=== Done: ${PKG_NAME}.tar.xz ==="
|
||||
Reference in New Issue
Block a user