open-index/open-npm huggingface dataset:
npm package: @hctech/uni-request
Description: 1. [x] 通过传入config实现配置请求，不用写一大堆代码 2. [x] 每次请求可以自动带上一些数据，比如极智报销里的`user_id` 3. [x] 乐观更新功能, 先响应界面后请求，出现问题再提示 4. [x] 控制是否显示loading 5. [x] 是否显示错误提示 6. [x] 断开网络了会直接提示 7. [x] 超出请求时间会关闭请求或加载
Author: 尘笙
Latest version: 1.0.2

# TODO
1. [x] 通过传入config实现配置请求，不用写一大堆代码
2. [x] 每次请求可以自动带上一些数据，比如极智报销里的`user_id`
3. [x] 乐观更新功能, 先响应界面后请求，出现问题再提示
4. [x] 控制是否显示loading
5. [x] 是否显示错误提示
6. [x] 断开网络了会直接提示
7. [x] 超出请求时间会关闭请求或加载

## 介绍
在原先的uniapp开发中，为了提供更友好的交互，通常需要写频繁loading和toast提示用户，现在只需要一行代码即可完成这些功能：`http.setOptions().get('/v2/invoice/list', data)`,是否显示loading和toast，现在只需要在`setOptions（）`传入指定参数控制即可。
以前调试的时候经常需要进入network中查看传入参数和返回参数，现在可以直接将请求的关键信息打印到控制台。

- 网络检测：断网状态显示：![[asset/Pasted image 20230521173542.png]]
- loading
	- 可以开启关闭请求等待接口相应的loading![[asset/Pasted image 20230521141618.png]]
	- 同时也可以方便的定义
- 详细打印请求信息，绿色表示状态为200，红色表示非200
	- ![[asset/Pasted image 20230521141422.png]]
	- 另外还有成功和失败的提示，基于200和非200![[asset/Pasted image 20230521181658.png]]![[asset/Pasted image 20230521181731.png]]
	- 
	- 
## 功能
### 配置
#### config
baseUrl:请求的基础地址
defaultParams：每次请求携带的默认参数
。。。
```ts
const http = new useApi({
	loadingText:'加载中~~~~~' // 配置加载中的文字显示
});
const testGet = () => http.setOptions().get('/v2/invoice/list', { a: '111' })
testGet()
```
![[asset/Pasted image 20230521182051.png]]
### 单个请求配置
```ts
/**
 * This function sets the options for a request.
 *
 * @param {Object} options The options for the request.
 * @param {string} options.sucMsg The success message.
 * @param {string} options.failMsg The failure message.
 * @param {boolean} options.isShowLoading Flag to show/hide loading.
 * @param {boolean} options.isShowSucToast Flag to show/hide success toast.
 * @param {boolean} options.isShowErrToast Flag to show/hide error toast.
 * @param {boolean} options.isOptimisticUpdateEnabled Flag for enabling optimistic update.
 * @param {Object} options.header The header for the request.
 * @param {boolean} options.isDebug Flag for enabling/disabling debug.
 * @param {boolean} options.isWarn Poup a model.
 * @return {useAxios} The useAxios instance.
 */

const http = new useApi();
const testGet = () => http.setOptions({isShowLoading:false}).get('/v2/invoice/list', { a: '111' })
testGet()
```

#### 乐观更新
`setOptions({isOptimisticUpdateEnabled:true})`, 默认false, 用户无感知操作，关闭加载中和成功通知，如果操作失败提醒用户重试：![[asset/Pasted image 20230521182616.png]]

#### 弹窗警告
删除这样的重要操作，需要重点提示用户，防止用户误操作
其中一种使用弹框让用户确认，点击确认之后才会执行请求：![[asset/Pasted image 20230520205925.png]]

使用示例：
```ts
.setOptions({isWarn:true})
```

## 实战教程
```ts
async request() {
			const http = new useApi({
				loadingText:'加载中~~~~~',
			});
			const testGet = () => http.setOptions({isWarn:true}).get('/v2/invoice/list', { a: '111' })
			testGet()
		}
```

![[asset/Pasted image 20230521193755.png]]
npm package: @hctv/sdk
Description: sdk for hctv, the live streaming platform for hack club.
Author: Izan Gil
Latest version: 0.1.0

# @hctv/sdk

sdk for hctv, the live streaming platform for hack club.

check https://docs.hackclub.tv for sdk api documentation.  
check the /examples directory for example usage of the sdk.

## author

gpl3 by @srizan10 and claude
npm package: @hd-fe/business
Description: 前端业务组件库
Latest version: 0.0.56

# 业务组件库

## 项目开发安装
```
npm install
```

### 编译和热启动开发环境
```
npm run serve
```

### 编译和压缩生产环境
```
npm run build
```

### 检查和修正代码格式
```
npm run lint
```

### 使用rollup构建库文件（默认，更小巧）
```
npm run lib
```

### 构建库文件并发布到npm

> 先执行lib命令，注意保证当前环境使用的是npm官方仓库源地址 `https://registry.npmjs.org/`

```
npm run pub
```

## 目录介绍
```
| build
--| config.js  # 构建配置
--| rollup.config.js  # 构建脚本
| examples  # 文档和示例
--| assets
--| components  # 示例中用到的组件
--| docs  # 文档目录
--|--| business # 业务组件文档
--| filters
--| md-loader # 实现markdown文件中的示例运行的脚本
--| router
--| views # 示例页面
--| App.vue
--| main.js
--| util.js
| lib
| packages  # 业务组件目录
--| index.js  # 组件构建配置
| public
| styles
```

## 组件添加

### 1. 在 `packages` 目录下添加组件文件

- 组件结构、目录和文件命名严格参考以下要求，其他资源放到src目录下

```
| `<组件名>`
--| src # 组件的vue文件和其他相关资源目录
--|--| Main.vue # 组件的vue入口文件
--| index.js  # 组件入口文件，建议完全复制不作修改
```

Main.vue文件中 `name` 值为组件标签名，统一以 `hd-` 开头

```
export default {
  name: 'hd-date-select'
}
```

### 2. 在 `build/config.js` 中添加构建配置

```
  {
    name: 'hd-date-select', # 仅作为构建文件名，与组件标签无关，但建议保持一致
    input: 'packages/dateSelect/index.js',  // 构建输入文件
    output: 'lib/hd-date-select.js' // 构建输出文件
  }
```

## 文档添加

### 1. 在 `examples/docs` 目录下添加组件文件

### 2. 在 `examples/router/router.js` 中添加构建配置

```
  {
    name: 'date-select',  # 文件名
    label: 'Date-Select 日期选择' # 左侧菜单显示的文字内容
  }
```

**其中 `name` 与 `docs` 下 `markdown` 文件名必须完全一致**
npm package: @hd-fe/echarts
Description: 前端图表库
Author: chenguoqin
Latest version: 0.2.11

# 汇电图表库说明

> 本图表库以简单易用为基本原则，仅对 `echarts` 常用图表和配置进行了简单封装。所有配置格式与 `echarts` 官网一致。

## 主要功能

- 主题定制，统一全局图表样式

- 封装常用图表类型和配置属性

## 使用

### 完整引入

```
  // main.js
  import Vue from 'vue'
  import HdECharts from '@hd-fe/echarts'
  import App from './App.vue'

  Vue.use(HdECharts)

  new Vue({
    el: '#app',
    render: h => h(App)
  })
```

### 按需引入

```
  import Vue from 'vue'
  import { HdLine } from '@hd-fe/echarts'
  import App from './App.vue'

  Vue.use(HdLine)

  new Vue({
    el: '#app',
    render: h => h(App)
  })
```

## 主题定制

### 完整引入时

```
  ...
  import HdECharts from '@hd-fe/echarts'
  import theme from './theme.json'

  Vue.use(HdECharts, { theme })
```

`themm.json` 文件可参考 [主题编辑器](https://echarts.baidu.com/theme-builder/) 导出，与 [官网配置项](https://echarts.baidu.com/option.html)  配置基本一致


### 按需引入时

```
  ...
  import { HdLine, HdBar } from '@hd-fe/echarts'
  import theme from './theme.json'

  Vue.use(HdLine, { theme })  // theme是全局设置，只需要设置一次
  Vue.use(HdBar)  // HdLine已设置theme，HdBar可不再配置
```

## 封装的图表类型

### 折线

### 柱状

### 饼状

### 雷达图

### 拆线-柱状

### 其他

## 可配置的属性

- `title: Object` 配置格式与 `echarts` 官网配置 `options` 下的 `title` 相同
- `legend: Object` 配置格式与 `echarts` 官网配置 `options` 下的 `legend` 相同
- `tooltip: Object` 配置格式与 `echarts` 官网配置 `options` 下的 `tooltip` 相同
- `xAxis: Object` 配置格式与 `echarts` 官网配置 `options` 下的 `xAxis` 相同
- `yAxis: Object` 配置格式与 `echarts` 官网配置 `options` 下的 `yAxis` 相同
- `series: Array` 配置格式与 `echarts` 官网配置 `options` 下的 `series` 相同
- `options: Object` 配置格式与 `echarts` 官网配置 `options` 相同
- `watchShallow: Boolean` 对 `options` 值进行浅监听并触发图表更新，默认值 `true` ，如果需要进行 `options` 值的深监听，可设置 `false`
- `autoresize: Boolean` 浏览器窗口大小改变时自适应，默认值 `true` 可设置 `false`
npm package: @hd-fe/element-theme-chalk
Description: Element component chalk theme.
Author: yi.shyang@ele.me
Latest version: 3.0.1

# @hd-fe/element-theme-chalk
> element component chalk theme.


## Installation
```shell
npm i @hd-fe/element-theme-chalk -S
```

## Usage

Use Sass import
```css
@import '@hd-fe/element-theme-chalk';
```

Or Use webpack
```javascript
import '@hd-fe/element-theme-chalk';
```

Or
```html
<link rel="stylesheet" href="path/to/node_modules/@hd-fe/element-theme-chalk/lib/index.css">
```

##  Import on demand
```javascript
import '@hd-fe/element-theme-chalk/lib/input.css';
import '@hd-fe/element-theme-chalk/lib/select.css';

// ...
```

重构了 `element-theme-chalk` 变量体系，优化了不合理的变量使用
npm package: @hd-fe/theme
Description: 主题管理
Author: 陈国钦
Latest version: 0.5.13

### 主题管理

本主题包提供 `dark`、 `darkNew`、`light`、`lightNew`、`darkGenco`、`darkGencoDatang`、`darkGencoYihai` 主题。

只有 `darkNew`、`lightNew` 主题提供了 `variables.css`

### 包目录

```
lib
-- darkNew
-- -- echarts
-- -- -- custom.json
-- -- -- theme.js
-- -- common.scss
-- -- index.css
-- -- variables.css
-- -- variables.scss
-- **
```

### 组件主题应用

调用接口时，会引入包括 `element-ui` `@hd-fe/ui` `@hd-fe/business` 组件库主题，并初始化 `css` 全局变量

#### 单主题应用

```
// main.js
import ThemeClass from '@hd-fe/theme'
new ThemeClass({ themeName: 'darkNew' }).init()
```

#### 多主题应用

> 主题切换时需要使用代码进行页面刷新，见下面示例代码

```
// utils/cookie.js
import cookie from 'js-cookie'

const THEME = 'app-theme' // 独立版THEME

export const getTheme = () => {
  return cookie.get(THEME)
}

export const setTheme = (theme) => {
  cookie.set(THEME, theme)
}
```

```
// main.js
import { getTheme } from '@/utils/cookie'
import ThemeClass from '@hd-fe/theme'
new ThemeClass({ themeName: (getTheme() || 'darkNew') }).init()
```

```
// vue
<template>
  <el-select
    v-model="theme"
    @change="selectTheme"
  >
    <el-option
      v-for="theme1 of themes"
      :key="theme1.name"
      :value="theme1.name"
      :label="theme1.title"
    />
  </el-select>
</template>
<script>
import { getTheme, setTheme } from '@/utils/cookie'

export default {
  data () {
    return {
      themes: [
        {
          name: 'lightNew',
          title: '亮色'
        },
        {
          name: 'darkNew',
          title: '暗黑'
        }
      ]
    }
  },
  methods: {
    selectTheme (name) {
      setTheme(name)
      location.reload()
    }
  }
}
</script>
```

#### 引用主题配置颜色变量

```
// scss 变量
@import '~@hd-fe/theme/lib/dark/variables.scss'
```


### echarts 图表主题应用

```
import HdECharts from '@hd-fe/echarts'
import theme from '@hd-fe/theme/lib/dark/echarts/theme.js'

Vue.use(HdECharts, { theme })
```

#### 引用 echarts 中 legend.icon 等配置文件

```
import HdECharts from '@hd-fe/echarts'
import custom from '@hd-fe/theme/lib/dark/echarts/custom.json'
Vue.use(HdECharts, { custom })

```
npm package: @hd-fe/ui
Description: 前端UI组件库
Latest version: 0.1.27

# 前端组件库

## 项目安装
```
npm install
```

### 编译和热启动开发环境
```
npm run serve
```

### 编译和压缩生产环境
```
npm run build
```

### 检查和修正代码格式
```
npm run lint
```

### 使用rollup构建库文件（默认，更小巧）
```
npm run lib
```

### 构建库文件并发布到npm

> 先执行lib命令，注意保证当前环境使用的是npm官方仓库源地址 `https://registry.npmjs.org/`

```
npm run pub
```

## 目录介绍
```
| build
--| config.js  # 构建配置
--| rollup.config.js  # 构建脚本
| examples  # 文档和示例
--| assets
--| components  # 示例中用到的组件
--| docs  # 文档目录
--|--| base # 基础组件文档
--| filters
--| md-loader # 实现markdown文件中的示例运行的脚本
--| router
--| views # 示例页面
--| App.vue
--| main.js
--| theme.json  # 图表库使用的主题配置文件
--| util.js
| images
| lib
| packages  # 基础组件目录
--| index.js  # 组件构建配置
| public
| styles
```

## 组件添加

### 1. 在 `packages` 目录下添加组件文件

- 组件结构、目录和文件命名严格参考以下要求，其他资源放到src目录下

```
| `<组件名>`
--| src # 组件的vue文件和其他相关资源目录
--|--| Main.vue # 组件的vue入口文件
--| index.js  # 组件入口文件，建议完全复制不作修改
```

Main.vue文件中 `name` 值为组件标签名，统一以 `hd-` 开头

```
export default {
  name: 'hd-block'
}
```

### 2. 在 `build/config.js` 中添加构建配置

```
  {
    name: 'hd-empty', # 仅作为构建文件名，与组件标签无关，但建议保持一致
    input: 'packages/empty/index.js',  // 构建输入文件
    output: 'lib/hd-empty.js' // 构建输出文件
  }
```

## 文档添加

### 1. 在 `examples/docs/base` 目录下添加组件文档文件

### 2. 在 `examples/router/router.js` 中添加构建配置

```
  {
    name: 'block',  # 文件名
    label: 'Block 块' # 左侧菜单显示的文字内容
  }
```

**其中 `name` 与 `docs` 下 `markdown` 文件名必须完全一致**
npm package: @hd-front-end/ai-assistant-sdk-vue2
Description: AI Assistant SDK for Vue 2 with TypeScript
Author: HD Front-end Team
Latest version: 0.0.2

# @hd-front-end/ai-assistant-sdk-vue2

AI助手SDK的Vue 2版本，提供完整的AI对话、数据可视化和页面交互能力。

## 特性

- ✅ **双重API导出**：同时支持Composable API和Mixin API
- ✅ **TypeScript支持**：完整的类型定义
- ✅ **声明式命令系统**：通过`$_hdAiCommands`选项优雅地注册AI命令
- ✅ **样式隔离**：BEM命名规范，零污染
- ✅ **Vue版本兼容**：支持Vue 2.6/2.7
- ✅ **渐进增强**：为Vue 3迁移铺路

## 安装

```bash
pnpm add @hd-front-end/ai-assistant-sdk-vue2
```

### Vue 2.6项目需要额外安装

```bash
pnpm add @vue/composition-api
```

### Vue 2.7项目无需额外依赖

Vue 2.7已内置Composition API。

## 使用方式

### 方式1: Composable API（推荐 - 现代Vue2项目）

适用于TypeScript 4.0+、vue-class-component v7+的项目。

```typescript
// main.ts - 注册插件
import Vue from 'vue';
import { AIAssistantPlugin } from '@hd-front-end/ai-assistant-sdk-vue2';

Vue.use(AIAssistantPlugin, {
  apiUrl: 'http://localhost:8080/api/chat',
  botId: 'your-bot-id'
});

// 组件中使用Composable API
import { useAIChat } from '@hd-front-end/ai-assistant-sdk-vue2/composable';

export default {
  setup() {
    const { chatList, isLoading, sendMessage } = useAIChat();
    
    return {
      chatList,
      isLoading,
      sendMessage
    };
  }
};
```

### 方式2: Mixin API（兼容 - 遗留Vue2项目）

适用于TypeScript 3.0+、vue-class-component v6的项目。

```typescript
// main.ts - 注册插件
import Vue from 'vue';
import { AIAssistantPlugin } from '@hd-front-end/ai-assistant-sdk-vue2';

Vue.use(AIAssistantPlugin, {
  apiUrl: 'http://localhost:8080/api/chat',
  botId: 'your-bot-id'
});

// 组件中使用Mixin API
import { AiChatMixin } from '@hd-front-end/ai-assistant-sdk-vue2/mixin';

export default {
  mixins: [AiChatMixin],
  
  // 声明式注册AI命令
  $_hdAiCommands: {
    'navigation.nextPage': function(params) {
      this.$router.push({ name: 'nextPage' });
    },
    'data.export': function(params) {
      this.exportData(params.format);
    }
  },
  
  methods: {
    async handleSend() {
      await this.$_hdAi_sendMessage('你好');
    }
  }
};
```

## 声明式命令系统

通过`$_hdAiCommands`选项优雅地注册AI命令：

```typescript
export default {
  mixins: [AiChatMixin],
  
  $_hdAiCommands: {
    // 命令会自动绑定this到组件实例
    'navigation.go': function(params: { page: string }) {
      this.$router.push({ name: params.page });
    },
    
    'data.refresh': function() {
      this.loadData();
    }
  },
  
  methods: {
    loadData() {
      // 业务逻辑
    }
  }
};
```

**优势**：
- ✅ 声明式配置，符合Vue开发者习惯
- ✅ 自动生命周期管理（注册和清理）
- ✅ this自动绑定到组件实例
- ✅ 支持多个Mixin的命令合并
- ✅ TypeScript类型安全

## 样式定制

### 方式1: CSS变量（运行时）

```css
:root {
  --hd-ai-primary-color: #1890ff;
  --hd-ai-border-radius: 4px;
  --hd-ai-spacing-unit: 8px;
}
```

### 方式2: SCSS变量（编译时）

```scss
// 在项目的全局SCSS文件中
$hd-ai-primary-color: $--color-primary; // 映射到Element UI主色

@import "~@hd-front-end/ai-assistant-sdk-vue2/src/assets/styles/variables";
```

## API文档

详细API文档请参考：[API Documentation](./docs/api.md)

## 示例项目

- [zl-portal-ui](../../examples/zl-portal-ui) - 使用Composable API
- [phoenix-web-ui](../../examples/phoenix-web-ui) - 使用Mixin API

## 许可证

MIT
npm package: @hd-front-end/jsbridge-sdk
Description: HD JSBridge SDK - 统一的原生能力封装
Author: HD Digital
Latest version: 1.0.6

# JSBridge SDK

> 生产级 JSBridge SDK - 通过原生 log 能力实现监控和日志上报

## ✨ 核心特性

- 🎯 **职责单一** - 只封装原生 API，不包含适配层
- 📱 **双平台支持** - 兼容 Android 和 iOS
- 📊 **统一日志管理** - 监控和业务日志都通过原生 log 上报
- 📝 **提供 log API** - 子应用可以上传业务日志
- 🔍 **Debug 模式** - 支持开启调试模式和调用追踪
- 💪 **类型安全** - 完整的 TypeScript 类型定义
- ⚡ **高性能** - 毫秒级初始化，内置竞态处理机制
- 📦 **体积小** - 20KB（gzip: 7KB）

## 🎯 两个目的

1. ✅ **监控 SDK 稳定性** - SDK 自动记录性能和错误，通过原生 log 上报
2. ✅ **提供子应用日志能力** - 子应用调用 `JSBridge.log.*` 上传业务日志

## 🚀 快速开始

### 安装

```bash
npm install @hd-front-end/jsbridge-sdk
```

### 基础使用

```typescript
import { init, JSBridge } from '@hd-front-end/jsbridge-sdk'

// 初始化
await init({
  monitor: {
    enabled: true,
    autoReport: true,        // 通过 log 自动上报
    logTag: 'JSBridge-Monitor'
  }
})

// 使用 bridge API
// SDK 会自动处理初始化等待，无需手动 check
const result = await JSBridge.scan()

// 上传业务日志
await JSBridge.log.info('用户点击了购买按钮', 'UserBehavior')
await JSBridge.log.error('支付失败', 'Payment')
```

### 调试模式

SDK 不再内置 vConsole，以减少包体积和避免依赖冲突。如果需要 vConsole，请在业务项目中自行安装。

```typescript
// 业务代码中
import VConsole from 'vconsole'

if (process.env.NODE_ENV === 'development') {
  new VConsole()
  
  // 开启 SDK 调试模式
  init({
    debug: {
      enabled: true, // 开启后会在控制台输出详细的调用日志
      logLevel: 'debug'
    }
  })
}
```

## 📚 文档

### 快速入口

- **[docs/README.md](./docs/README.md)** - 📖 文档索引（从这里开始）
- **[docs/05-迁移指南.md](./docs/05-迁移指南.md)** - 🔄 Vue2/Vue3 集成指南
- **[docs/生产级-架构设计-v2.md](./docs/生产级-架构设计-v2.md)** - 🏗️ 完整架构
- **[docs/设计理念说明.md](./docs/设计理念说明.md)** - 💡 设计理念（⭐ 必读）

### 详细文档

- [平台兼容性说明.md](./docs/平台兼容性说明.md) - Android/iOS 兼容
- [监控指南.md](./docs/监控指南.md) - 监控使用指南
- [新增桥接能力扩展说明.md](./docs/07-新桥接方法扩展说明.md) - **新集成的业务级桥接能力及 UniApp 适配方法说明**
- [更新日志.md](./docs/更新日志.md) - 版本演进历史
- [关键问题解答.md](./docs/关键问题解答.md) - 核心问题解答

### 工作总结

- [最终工作报告-v2.md](./最终工作报告-v2.md) - 完整工作总结
- [阶段3-总结.md](./阶段3-总结.md) - 集成测试与性能攻坚总结

## 🏗️ 架构设计

```
┌─────────────────────────────────────┐
│  子应用                              │
│  - 调用 JSBridge.log.info(...)      │
│  - 上传业务日志                      │
└─────────────────────────────────────┘
            ↓
┌─────────────────────────────────────┐
│  @hd-front-end/jsbridge-sdk                   │
│  ├── 核心通信（Android/iOS）         │
│  ├── API 层（device/media/log...）  │
│  ├── 监控层（通过 log 上报）         │
│  └── Debug 层（调用追踪）           │
└─────────────────────────────────────┘
            ↓
┌─────────────────────────────────────┐
│  原生 WebView                        │
│  ├── log handler                    │
│  ├── LogUtil 写入日志文件            │
│  └── 统一上传到服务器                │
└─────────────────────────────────────┘
```

## 💻 核心 API

### Bridge API

```typescript
// 扫码
const result = await JSBridge.scan()

// 拨打电话
await JSBridge.makePhoneCall({ phoneNumber: '10086' })

// 震动
await JSBridge.vibrate()

// 获取设备信息
const info = await JSBridge.getDeviceInfo()
```

### Log API

```typescript
// 记录日志
await JSBridge.log.info('操作成功', 'Business')
await JSBridge.log.error('接口异常', 'Network', { status: 500 })
```
npm package: @hd-front-end/theme-chalk
Description: Custom Element Plus chalk theme for hd-front-end.
Author: hd-front-end
Latest version: 0.1.0

# element-theme-chalk

> element component chalk theme.

## Installation

```shell
npm i element-plus
```

## Usage

Use Sass import

```css
@use 'element-plus/lib/theme-chalk/index.scss';
```

Or Use vite/webpack

```javascript
import 'element-plus/lib/theme-chalk/index.css'
```

Or

```html
<link
  rel="stylesheet"
  href="https://unpkg.com/element-plus/lib/theme-chalk/index.css"
/>
```

## Import on demand

```javascript
import 'element-plus/lib/theme-chalk/input.css'
import 'element-plus/lib/theme-chalk/select.css'

// ...
```
npm package: @hd-sh/cli
Description: 汇动CLI
Author: chengheai
Latest version: 0.0.9

# HD

汇动脚手架集合

## 使用

```bash
# 安装
$ npm i -g @hd-sh/cli

# 创建项目
$ hd create <project-name>


示例:

# 使用指定模板创建一个 spa 项目

$ hd create my-project

# 选择项目模版

> choice template

```

## 说明

|   mode   |                description                 |
| :------: | :----------------------------------------: |
|   spa    |         webpack4.x 单页面应用模板          |
|   mpa    |         webpack4.x 多页面应用模板          |
|   vmpa   |           vue2.x 多页面应用模板            |
|  av2wev  |   admin vue2.x + cli + element-ui + vuex   |
|  av3vap  |   admin vue3.x + vite4.x + antd + pinia    |
| av3vapts | admin vue3.x + vite4.x + ts + antd + pinia |
| av3vavts | admin vue3.x + vite4.x + ts + antd + vuex  |
|   mini   |             原生 + gulp + sass             |
| uni-app  |            uni-app 定制 多环境             |