参考

包与清单参考

zero.json 模式、包本地导入、目标、依赖和配置。

包与清单参考

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 定义模块 foo
  • src/foo/mod.0 定义目录模块 foo

导入循环和重复的公共导出会在构建输出之前被诊断报告。

解析器接受本地路径依赖。精确版本的注册表引用作为元数据记录,不进行远程获取。

zero graph --json <package> 报告:

  • package.dependencies
  • package.lockfile
  • package.resolver
  • packageCache.cacheKeyInputs

解析器在 .zero/package-locks/*.lock.json 下写入确定性的依赖指纹文件。缓存键包括编译器版本、目标平台、包版本、清单哈希、依赖图哈希和锁文件哈希。

包图故障使用稳定的诊断代码:

  • PKG001:本地依赖路径不包含 zero.json
  • PKG002:包依赖形成循环
  • PKG003:依赖图将同一个包名解析为冲突的版本
  • PKG004:所选目标未列在依赖的目标元数据中

zero doc --json <package> 暴露面向注册表的发布元数据。公共包 API 在发布前应携带文档/示例元数据。当前编译器将其报告为 publicationGate