Skip to content

使用第三方包 ​

包仓库 ​

目前只支持发布在github上的包,包仓库索引地址

每个包的全名应是 发布者/包名,例如 bill-mark/shuxue。导入、添加、删除时都要写全名。

添加依赖 ​

在项目里执行:

bash
cpro tianjia bill-mark/shuxue@0.1.4
  • 必须写版本号
  • 会把依赖写进 cpro.json,并立即下载安装

cpro.json 里会多出这一条:

json
{
  "yilai": {
    "bill-mark/shuxue": "0.1.4"
  }
}

也可以直接改 cpro.json,然后执行 cpro anzhuang 安装。

使用 ​

第三方包只能按名字导入,要写全名:

cpro
daoru { int_jia } laizi "bill-mark/shuxue"

rukou() {
    bl a = int_jia(2, 3)
    dayin("2 + 3 =", a)
}
cpro
导入 { int_jia } 来自 "bill-mark/shuxue"

入口() {
    变量 a = int_jia(2, 3)
    打印("2 + 3 =", a)
}
cpro
import { int_jia } from "bill-mark/shuxue"

rukou() {
    var a = int_jia(2, 3)
    print("2 + 3 =", a)
}
bash
cpro yunxing src/rukou.cp
  • 不能整个导入(daoru "bill-mark/shuxue" 会报错)
  • 两个包有同名函数时用 zuowei 改名,见 模块与导入
  • 只能导入自己 cpro.json 里声明了的包。某个包是别的包的依赖、碰巧也装在磁盘上,你也不能直接用,要用就自己加进清单

安装全部依赖 ​

拿到别人的项目,或者手动改了 cpro.json 之后:

bash
cpro anzhuang

它会安装清单里的依赖,以及依赖的依赖,最后列出所有包:

[项目] /home/me/wo_de_app/cpro.json
  + bill-mark/shuxue@0.1.4     新装
依赖已全部装好:共 1 个包(新装 1,已有 0),直接依赖 1 个

带 + 的是这次新装的。重复执行是安全的,已经装好的不会再下载。

删除依赖 ​

bash
cpro yichu bill-mark/shuxue

删除时不写版本号。不再被任何包使用的依赖会一起清理掉。

版本 ​

  • 清单里只能写精确版本,如 0.1.4,不支持 ^、~、>= 这类范围写法
  • 不会自动升级。要用新版本就改版本号,或重新 tianjia 包名@新版本
  • 同一个包的两个版本可以同时存在:你用 2.0.0,你依赖的某个包用 1.0.0,两份各装各的,互不影响

下载 ​

包从官方索引 index.cpro-lang.com 查到下载地址后下载,并校验 sha256。下载用的是系统的 curl 命令,Linux 上要先装好,见 Linux 环境配置。

下载过的包缓存在家目录的 .cpro/baoyuan/ 下,多个项目共用,不会重复下载。设置环境变量 CPRO_BAOYUAN 可以改到别的位置。

常见报错 ​

报错原因怎么办
缺少发布者前缀导入时只写了包名写全名 发布者/包名
未在 cpro.json 的 yilai 中声明清单里没有这个包用 tianjia 添加
已声明,但尚未安装改了清单还没安装执行 anzhuang
索引里没有 X@版本这个版本没发布过报错里会列出可用版本
缺少版本号tianjia 没写 @版本tianjia bill-mark/shuxue@0.1.4
下载失败(无法连接 / 超时)网络不通检查网络后重试
下载失败,浏览器却能下载浏览器走了代理,curl 没走设置 HTTPS_PROXY 指向代理后重试
包体校验失败下载内容和登记的不一致不要使用该文件,向我们反馈
依赖成环包之间互相依赖按报错里的链路找到出问题的包

想发布自己的包,见 发布包。

cpro 目前处于测试阶段