`注意：node版本 >= 8.9`

### 注意事项
```
1. 项目在抹平平台差异时，尽量保证web端用户能够无缝衔接。
2. 项目中不能直接引入vue,vue-router,vuex库(如果引入的话，虽然依赖包放在dev依赖上，但是
webpack依然会将引入的包打包进代码里，这样会让使用库的人重复引入代码)
   如果需要类型，则可以引用vue/types vue-router/types
```

## 代码规范
```
项目使用eslint的ts版本作为代码规范，但是项目中可能还有些eslint不易检查的一些规范，
这里稍微列举一下。
1.项目中所有文件名以小写驼峰命名（例：applicationConfig.ts）。
2.项目中class以大写驼峰命名（例：Application）
3.项目中尽量使用type来定义数据结构，interface定义class接口
4.项目中尽量对所有使用到的class，methods，enum，type，interface等书写注释，尽量浅显易懂，也为了更好的生成doc文档（项目中使用typedoc来生成doc文档）
5.项目中尽量不要添加dependencies类型的依赖，如有，请提出，并与大家商量。
6.项目中尽量不要有重复代码，如有，请尽量抽取出来。
```

## Project setup
```
// XXX为当前实际地址
git clone

npm install
```

### 项目打包
```
npm run build

执行打包会将代码打包到dist目录下：cross-common.js
```

### 项目发布
```
npm run publish-patch 项目发布修补版本
npm run publish-minor 项目发布小版本
```

### 项目文档生成
```
npm run doc
会对src下的代码生成api文档放置到docs目录下
```

### Lints and fixes files
```
npm run lint 修复src下的代码
npm run lintAll 修复整个项目中的代码，会去除.eslintignore中的目录
npm run format 对src下的代码进行美化
```

### 文件结构
```
+-- src/
|   +-- common/            // 公用资源
|   |   +-- constants/     // 公共常量
|   |   +-- utils/         // 常用函数

|   +-- core/          // 项目核心代码
|   |   +-- app/       // app类
|   |   +-- base/      // 提供项目中的基础类
|   |   +-- mgrs/      // 项目中的重点部分，各个管理器
|   |   +-- runtime/   // 运行时对象
|   |   +-- utils/     // 项目中的工具函数等

|   +-- main.ts        // 项目入口
|   |  ............
|
|
|-- .gitignore            // git的排除目录
|-- .eslintignore         // eslint的排除目录
|-- .eslintrc.js          // eslint 配置文件
|-- babel.config.js       // babel 配置文件
|-- package.json          // 项目包文件
|-- prettier.config.js    // prettier配置文件
|-- tsconfig.json         // typescript 配置
|-- webpack.common.js     // webpack通用配置
|-- webpack.dev.js        // webpack dev配置
|-- webpack.prod.js       // webpack prod配置

```

### 文档
[TypeScript文档](https://www.tslang.cn/docs/home.html)
[webpack]
[babel]
[eslint]
[typedoc]
...

