# 咚咚技术栈

## 半城云的前端技术栈

当前咚咚来客的前端团队以 react 技术栈为主，其他的框架优缺点各有千秋，因为不在公司的使用范围所以不做展开叙述。

## 1.工具

### 1.1 基础的开发环境

**1.1.1 npm/yarn**

推荐使用 npm。

yarn 安装依赖目前发现了主要问题有：eslint 安装失败、缺少提交检测。不强制使用源，建议用官方源。

**1.1.2 nodejs**

<https://nodejs.org/en/>

不强制版本，但建议在 14 以上。

**1.1.3 IDE - VSCode**

咚咚来客统一使用 VSCode 编辑器，需要在插件一栏安装**Prettier - Code formatter、ESlint、Todo Tree、GitLens、TSLint、Bcy DevTools for VSCode**插件。同时可选择适合自己的额外插件。

## 2.框架

### 基础框架

**2.1.1 umijs**

<https://v2.umijs.org/>

> umi，中文可发音为乌米，是一个可插拔的企业级 react 应用框架。umi 以路由为基础的，支持类 next.js 的约定式路由，以及各种进阶的路由功能，并以此进行功能扩展，比如支持路由级的按需加载。然后配以完善的插件体系，覆盖从源码到构建产物的每个生命周期，支持各种功能扩展和业务需求，目前内外部加起来已有 50+ 的插件。

**2.1.2 antd**

<https://ant.design/index-cn>

> antd 是基于 Ant Design 设计体系的 React UI 组件库，主要用于研发企业级中后台产品。

目前咚咚来客中后台 pc 端都在使用该 ui 框架。

**2.1.3 Taro**

[Tarojs](https://taro-docs.jd.com/taro/docs/README/index.html)

> Taro 是一个开放式跨端跨框架解决方案，支持使用 React/Vue/Nerv 等框架来开发 微信 / 京东 / 百度 / 支付宝 / 字节跳动 / QQ 小程序 / H5 / RN 等应用。

**2.1.4 taro-ui**

[taro-ui](https://taro-ui.jd.com/#/docs/modal)

基于 taro 的官方 ui 框架，很长时间没有人维护了，零零散散的 bug 很多，在项目中用到的地方较少，后期会考虑替换。

## 3.其他

### 3.1.1 单元测试

**TODO 当前此流程缺失，需完善**

### 3.1.2 socketio

配合后端使用的插件，即时聊天需要用到，后端目前使用 hyperf，最高的 socketio 版本是 2.x（官网最新版本是 4.x）。

### 3.1.3 indexdb

IndexedDB 是一种使用浏览器存储大量数据的方法，它创造的数据可以被查询，并且可以离线使用。
