包与清单参考
zero.json 是包清单文件。当前编译器支持本地包和可执行目标。
{
"package": { "name": "hello", "version": "0.1.0", "license": "MIT" },
"targets": { "cli": { "kind": "exe", "main": "src/main.0" } },
"dependencies": {
"local-tools": { "path": "../local-tools", "version": "0.1.0" },
"registry-tools": "1.2.3"
},
"profiles": {
"dev": { "inherits": "dev" },
"release": { "inherits": "release" }
}
}包内导入从 src/ 目录解析:
src/foo.0定义模块foosrc/foo/mod.0定义目录模块foo
导入循环和重复的公共导出会在构建输出之前被诊断报告。
解析器接受本地路径依赖。精确版本的注册表引用作为元数据记录,不进行远程获取。
zero graph --json <package> 报告:
package.dependenciespackage.lockfilepackage.resolverpackageCache.cacheKeyInputs
解析器在 .zero/package-locks/*.lock.json 下写入确定性的依赖指纹文件。缓存键包括编译器版本、目标平台、包版本、清单哈希、依赖图哈希和锁文件哈希。
包图故障使用稳定的诊断代码:
PKG001:本地依赖路径不包含zero.jsonPKG002:包依赖形成循环PKG003:依赖图将同一个包名解析为冲突的版本PKG004:所选目标未列在依赖的目标元数据中
zero doc --json <package> 暴露面向注册表的发布元数据。公共包 API 在发布前应携带文档/示例元数据。当前编译器将其报告为 publicationGate。