扩展打包与安装
扩展打包与安装
功能
bt ext 是 BT 扩展工具链,用于创建扩展项目、构建 .bts 包、安装到项目、查看包信息和执行加载检查。官方扩展库使用顶层命令 bt install 远程安装。
命令
bt ext new <dir> [--kind bt|wasm] bt ext build [dir] [-o <file.bts>] bt ext install <file.bts> [project_dir] bt ext info <file.bts> bt ext check [dir|file.bts] bt install <name> [version] [--project <dir>]
参数
| 命令 | 说明 |
|---|---|
new <dir> | 创建扩展开发目录,默认生成 kind=bt 脚手架。 |
new <dir> --kind wasm | 创建 WASM 扩展开发目录,生成 Rust SDK 脚手架。 |
build [dir] | 从扩展开发目录打包 .bts,默认输出 <manifest.name>.bts。 |
build [dir] -o <file> | 指定输出包路径,必须使用 .bts 后缀。 |
install <file> [dir] | 校验本地包后复制到目标项目 extensions/<name>/<name>-<version>.bts。 |
info <file> | 查看 manifest、权限、入口、对象和方法摘要。 |
check [dir|file] | 校验开发目录或 .bts 包能被当前 BT 构建加载。 |
bt install <name> | 从官网扩展库安装最新兼容版本。 |
bt install <name> <version> | 从官网扩展库安装指定三段式版本。 |
--project <dir> | 指定远程安装目标项目目录,默认是当前目录。 |
返回值
bt ext 是命令行工具,不向 BT 脚本返回值。命令成功时输出执行进度和结果;命令失败时输出中文错误并返回失败状态。
打包规则
bt ext build 会收集开发目录中的普通文件,并跳过:
target/ .git/ .hg/ .svn/ node_modules/
打包时会限制 .bts 包条目数量、单文件大小、总解压大小和包内路径。写出 zip 后,工具会回读 .bts 并初始化对应 Runner,确保包能被运行时加载。
安装规则
安装命令:
bt ext install calc.bts project
会把扩展复制到:
project/extensions/calc/calc-1.0.0.bts
目标目录和文件名来自包内 manifest.name 与 manifest.version,不是命令行传入的文件名。安装同名新版本前会删除 extensions/<name>/ 下旧的 <name>-*.bts,避免同一项目同时加载两个同名扩展版本。运行时仍兼容旧的 extensions/*.bts 顶层包。
远程安装命令:
bt install sqlite bt install sqlite 1.0.0 bt install sqlite --project examples/app
可先打开官网扩展库页面 /ext 查看当前可安装扩展、版本、权限和源码地址。
远程安装会先读取官网元数据,再下载 .bts 临时文件,校验 SHA-256、文件大小、包内 manifest.name、manifest.version、kind 和 abi 后写入项目扩展目录。下载失败、校验失败或包后端加载失败时,不会留下可被运行时加载的半截 .bts 文件。
远程安装输出分为下载、校验和安装三步:
Installing sqlite 1.0.0... [1/3] Downloading [████████████████████████████████████████] 720.3KB / 720.3KB 100% 1.2MB/s [2/3] Verifying checksum ✔ sha256 OK [3/3] Installing ✔ completed Done.
代码示例
完整纯 BT 扩展流程:
bt ext new calc bt ext build calc -o calc.bts bt ext check calc.bts bt ext info calc.bts bt ext install calc.bts project bt install sqlite 1.0.0 --project project
安装后项目脚本调用:
result = calc(1).add(2).value() // 输出:3 print result
注意事项
-
bt ext new不会覆盖非空目录。 -
bt ext build的输出路径如果位于开发目录内,工具会避免把输出包再次打进包里。 -
bt ext install和bt install都会让同名扩展在项目中只保留一个版本。 -
bt install第一阶段只支持major.minor.patch三段式版本,不支持范围版本和传递依赖。 - 扩展 CLI 命令成功时会向终端输出构建、安装或检查结果;失败时输出中文错误,不会生成可部分加载的
.bts包。 - 默认构建已启用
extensionsfeature,可以直接使用bt ext;只有使用--no-default-features构建轻量版时,bt ext和项目扩展加载才不可用。