恋语(cplang)cpkg 包管理器的默认注册表。
# 设置注册表
包 注册表 https://raw.githubusercontent.com/mycplang/registry/main/index.json
# 安装官方包
包 安装 @cplang/math
包 安装 @cplang/string
# 安装社区包
包 安装 @用户名/包名packages/
@cplang/ ← 官方认证包
math/
index.cp
README.md
string/
index.cp
README.md
@用户名/ ← 社区包
游戏引擎/
index.cp
README.md
包的 index.cp 中定义的所有 函数 会自动被 导入 包名 暴露给调用方。
| 层级 | 前缀 | 审核 | 说明 |
|---|---|---|---|
| 官方认证 | @cplang/ |
严格审核 | 由恋语团队维护,质量有保证 |
| 社区包 | @你的用户名/ |
基本审核 | 社区贡献,用户自行评估质量 |
为什么需要命名空间?
- 防止包名抢注:
@张三/http和@李四/http可以共存 - 明确责任归属:一看就知道包是谁维护的
- 避免npm式的命名冲突问题
- 你有一个 GitHub 账号
- 你的包能正常工作(建议附带示例)
- Fork 本仓库
- 在
packages/下按命名空间新建目录:packages/@你的用户名/包名/ index.cp ← 包入口(必须) README.md ← 包说明(必须,包含用法示例) - 更新
index.json,添加条目:"@你的用户名/包名": { "desc": "包的中文描述", "version": "0.1.0", "url": "https://raw.githubusercontent.com/mycplang/registry/main/packages/@你的用户名/包名/index.cp" }
- 提交 Pull Request,标题格式:
添加包 @用户名/包名
基本要求(必须满足):
- ✅ 包名符合命名空间格式(
@用户名/包名) - ✅ 包名至少3个字符,不允许纯无意义名称(如
aaa、test123) - ✅ 包含
index.cp和README.md - ✅ README 中有用法示例
- ✅ 代码能正常运行
- ✅ 不与已有包名冲突
官方认证包额外要求(@cplang/ 前缀):
- ✅ 有完整的API文档
- ✅ 有测试用例
- ✅ 经过安全审查
拒绝的情况:
- ❌ 纯占位包、空包
- ❌ 包含恶意代码(如执行系统命令删除文件)
- ❌ 抄袭其他包且无实质改进
- ❌ 同一用户短期内提交过多低质量包
- 同一用户每天最多提交 3 个包
- 30 天内无人下载的包标记为 inactive
- 6 个月无下载且无人维护的包可被同名替换(需申请)
| 包名 | 描述 | 版本 |
|---|---|---|
| @cplang/math | 数学工具:立方、平方、平均值、阶乘 | 0.1.0 |
| @cplang/string | 字符串工具:反转、重复、左填充 | 0.1.0 |
| @cplang/图形 | 图形工具:随机颜色等 | 0.1.0 |