1.4. 工程目录结构
工程目录结构是整个外围工具工作的基础,比如 init 根据该结构生成工程、包管理工具则依次管理依赖关系。
1.4.1 工程目录结构简介
凹语言程序以包来组织代码,包可以是一个单文件,包也可以是一个目录。凹语言自带的 waroot/examples/hello
案例的是一个更为完整的工程,其目录结构如下:
examples/hello/
├── LICENSE
├── README.md
├── src
│ ├── main.wa
│ └── mymath
│ └── math.wa
├── vendor
│ └── 3rdparty
│ └── pkg
│ └── pkg.wa
└── wa.mod
除了版权文件、说明文件外,最重要的是 wa.mod
包工程文件,其定义了当前应用的包路径。此外 src 目录下的是当前包路径下的代码,是默认的 main 入口包。
wa.mod
文件内容如下:
name = "hello"
pkgpath = "myapp"
version = "0.0.1"
其中 pkgpath 表示当前包的路径,从而可以推导出 mymath 子目录对应的包路径为 "myapp/mymath"
。vendor 目录是依赖的第三方代码,其中 vendor/3rdparty/pkg
对应的包路径为 "3rdparty/pkg"
。
1.4.2 包管理工具
凹语言目前还没有包管理工具,如果依赖第三方包则需要手工同步 vendor 目录。开发组希望在 MVP 版本后启动包管理工具开放工作。