本程序仅供教育用途,禁止用于商业用途
运行aily blockly离线服务,会在本地启动一套私有仓库服务,用于管理和分发aily blockly相关的开发板、库、编译器、SDK 和工具包。
- 🚀 本地私有 npm 仓库服务(Verdaccio)
- 📦 自动克隆/更新远程仓库并发布包
- 🖼️ 静态文件服务器(提供开发板、库目录及图片等资源)
- 🔐 内置用户认证管理
- 🔄 一键更新所有依赖包
- Node.js >= 20.x
- Windows 操作系统(当前版本针对 Windows 优化)
# 克隆仓库
git clone https://github.com/ailyProject/aily-blockly-offline-service.git
cd aily-blockly-offline-service
# 安装依赖
npm installnode cli.js run这将启动:
- Verdaccio 服务:
http://localhost:4873- npm 私有仓库 - 静态文件服务器:
http://localhost:4874- 静态资源服务
node cli.js update此命令会:
- 克隆或更新以下仓库:
aily-blockly-boards- 开发板配置aily-blockly-libraries- 库配置aily-project-tools- 工具包aily-project-compilers- 编译器aily-project-sdks- SDK
- 执行仓库中配置的构建命令
- 将所有包发布到本地 Verdaccio
- 从 Cloudflare R2 同步资源到本地
public目录
node cli.js stopnode cli.js status| 命令 | 说明 |
|---|---|
node cli.js run |
启动 Verdaccio 和静态文件服务器 |
node cli.js stop |
停止所有服务 |
node cli.js status |
查看服务运行状态 |
node cli.js update |
克隆/更新仓库、发布包并同步云端资源(跳过已存在文件) |
node cli.js update --force |
克隆/更新仓库、发布包并强制同步所有云端资源(覆盖已有文件) |
node cli.js unpublish <包名> |
从 npm 仓库中卸载指定的包(所有版本) |
node cli.js unpublish <包名>@<版本> |
从 npm 仓库中卸载指定版本的包 |
node cli.js help |
显示帮助信息 |
也可以使用 npm 脚本运行:
npm run run # 启动服务
npm run stop # 停止服务
npm run status # 查看状态
npm run update # 更新包
npm start # 前台启动 Verdaccioaily-blockly-offline-service/
├── cli.js # 命令行工具入口
├── start-verdaccio.js # Verdaccio 启动脚本
├── config.yaml # Verdaccio 配置文件
├── htpasswd # 用户认证文件
├── package.json # 项目配置
├── public/ # 静态资源目录
│ ├── index.html # 静态服务首页
│ ├── boards.json # 开发板配置 JSON
│ ├── libraries.json # 库配置 JSON
│ └── boards/ # 开发板图片资源
├── repos/ # 克隆的远程仓库
│ ├── aily-blockly-boards/
│ ├── aily-blockly-libraries/
│ ├── aily-project-compilers/
│ ├── aily-project-sdks/
│ └── aily-project-tools/
└── storage/ # Verdaccio 包存储目录
- 存储路径:
./storage - 认证方式: htpasswd 文件认证
- 上游代理: npmjs.org
服务启动时会自动创建默认用户:
- 用户名:
aily-admin - 密码:
aily123456 - 邮箱:
admin@aily.local
用户信息保存在 .env 文件中。
在其他项目中使用本地 Verdaccio 仓库:
# 临时使用
npm install <package-name> --registry http://localhost:4873
# 配置为默认仓库
npm config set registry http://localhost:4873
# 或在项目根目录创建 .npmrc 文件
echo "registry=http://localhost:4873" > .npmrcverdaccio.log- Verdaccio 服务日志static-server.log- 静态文件服务器日志
检查端口 4873 和 4874 是否被占用:
netstat -ano | findstr :4873
netstat -ano | findstr :4874- 确保 Verdaccio 服务已启动 (
node cli.js run) - 检查网络连接是否正常(需要访问 Gitee 仓库)
- 确保 Git 已正确安装
# 停止服务
node cli.js stop
# 删除存储和仓库目录
rmdir /s /q storage
rmdir /s /q repos
# 删除 PID 和日志文件
del .verdaccio.pid .static-server.pid verdaccio.log static-server.log
# 重新启动
node cli.js runISC