# `aiotpack`

最终打包工具，包含各类语言、各类平台的打包配置

## 目录结构

| 目录     | 描述                                                                            |
| -------- | ------------------------------------------------------------------------------- |
| config   | FileLane 配置，基于此配置，可完成“源码项目-->目标代码项目-->应用程序”的完整流程 |
| compiler | 目标语言-->应用程序编译器                                                       |
| loader   | 源码语言-->目标代码语言                                                         |
| utils    | 语言、项目无关的辅助工具                                                        |

## config

通过在 FileLane 中配置各项参数，可完成“**源码项目-->目标代码项目-->应用程序**”的完整流程

## compiler

#### 概述

源码已生成目标代码项目，此时需要生成**最终产物--应用程序**。compiler 目录中的代码即为完成此项工作而生。

#### 子目录

compiler 下的每个子目录，对应一种目标语言；每种目标语言在不同平台又可能有不同的生成方式。

因此结构为：`compiler/目标语言/目标平台`，例如：

- `compiler/javascript/vela`--javascript 语言在 vela 平台的生成

#### 添加编译器

1. 按上述目录结构，添加目录
2. 创建编译器`class XCompiler`, 建议实现实现`ICompiler` 接口，以便以后实现统一的用户端接口
3. 在需要的位置调用

```js
new XCompiler().compile({
  projectPath: '',
  mode: 'development',
  platform: 'native'
})
```

## loader--各类语言的转换器
