feat: 初始化前端项目基础结构

- 添加项目配置文件(tsconfig, eslint, prettier等)
- 实现基础路由和页面布局
- 添加全局状态管理和API请求封装
- 集成UI组件库和主题系统
- 添加文档网站和示例页面
- 配置CI/CD和工作流
This commit is contained in:
zhangtao
2026-05-01 01:05:16 +08:00
parent dd4191973f
commit 66d8fcad87
256 changed files with 45257 additions and 2 deletions
+1
View File
@@ -0,0 +1 @@
custom: ['https://github.com/Moonofweisheng/sponsors']
+87
View File
@@ -0,0 +1,87 @@
name: 向 Wot Starter 反馈 Bug
description: 创建一个 Issue 描述你遇到的问题。
title: '[Bug 上报] 请在此填写标题'
labels: ['🐞bug: need confirm']
body:
- type: markdown
attributes:
value: |
在向我们提交 Bug 报告前,请优先使用以下方式尝试解决问题:
- 在组件文档 [wot-starter](https://starter.wot-ui.cn/) 确认使用方法是否正确
- 尝试在 [Issue](https://github.com/wot-ui/wot-starter/issues) 列表中搜索相同问题
- type: input
id: version
attributes:
label: Wot Starter 版本号
description: 你正在使用的模板版本号(请填写 package.json 里版本)
placeholder: 例如:0.1.1
validations:
required: true
- type: dropdown
id: platform
attributes:
label: 平台
multiple: true
description: 选择对应的平台
options:
- h5
- 微信小程序
- 支付宝小程序
- APP
- 钉钉小程序
- 其他小程序
validations:
required: true
- type: input
id: reproduce
attributes:
label: 复现Demo地址(如不提供,将被直接关闭)
description: |
我们需要你提供一个最小重现demo,以便于我们帮你排查问题。你可以通过 fork 本项目,快速创建一个wot-design-uni项目,并添加相关复现逻辑来提供。不要随便填写一个东西,这会导致你的 issue 被直接关闭。即使在你看来问题很容易复现,也请认真对待,因为一个完整复现demo可以大大提高我们排查问题的效率。
validations:
required: true
- type: textarea
id: reproduce-steps
attributes:
label: 重现步骤
description: |
请提供一个最简洁清晰的重现步骤,方便我们快速重现问题。
validations:
required: true
- type: textarea
id: expected
attributes:
label: 期望的结果是什么?
validations:
required: true
- type: textarea
id: actually-happening
attributes:
label: 实际的结果是什么?
validations:
required: true
- type: textarea
id: uni-app
attributes:
label: 环境信息
description: |
在这里填写你的环境信息
- 发行平台: [如 微信小程序、H5平台、App等]
- 操作系统 [如 iOS 12.1.2、Android 7.0]
- HBuilderX版本 [如使用HBuilderX,则需提供 HBuilderX 版本号]
- uni-app版本 [如使用Vue-cli创建/运行项目,则提供`npm run info`的运行结果]
- 设备信息 [如 iPhone8 Plus]
- type: textarea
id: extra
attributes:
label: 其他补充信息
description: |
根据你的分析,出现这个问题的原因可能在哪里,或者你认为可能产生关联的信息:比如 Vue 版本、vite 版本、Node 版本、采用哪种自动引入方案等,或者进行了哪些配置,使用了哪些插件等信息。
@@ -0,0 +1,33 @@
name: 向 Wot Starter 提出新功能需求
description: 创建一个 Issue 描述一下你的功能需求。
title: '[新功能需求] 请在此填写标题'
labels: ['feature: need confirm']
body:
- type: markdown
attributes:
value: |
在提交功能需求前,请注意:
- 确认这是一个通用功能,并且无法通过现有的 API 或 Slot 实现。
- 尝试在 [Issue](https://github.com/wot-ui/wot-starter/issues)列表中搜索,并且没有发现同样的需求。
- 请确保描述清楚你的需求,以便其他开发者更好地理解你的需求。
- type: textarea
id: description
attributes:
label: 这个功能解决了什么问题?
description: 请尽可能详细地说明这个功能的使用场景。
validations:
required: true
- type: textarea
id: api
attributes:
label: 你期望的 API 是什么样子的?
description: 描述一下这个新功能的 API,并提供一些代码示例。
placeholder: |
```xml
<wd-interesting some-prop="xxx" />
```
validations:
required: true
+43
View File
@@ -0,0 +1,43 @@
<!-- (将"[ ]"更新为"[x]"以勾选一个框) -->
### 🤔 这个 PR 的性质是?(至少选择一个)
- [ ] 日常 bug 修复
- [ ] 新特性提交
- [ ] 站点、文档改进
- [ ] 演示代码改进
- [ ] 组件样式/交互改进
- [ ] TypeScript 定义更新
- [ ] CI/CD 改进
- [ ] 包体积优化
- [ ] 性能优化
- [ ] 功能增强
- [ ] 国际化改进
- [ ] 代码重构
- [ ] 代码风格优化
- [ ] 测试用例
- [ ] 分支合并
- [ ] 其他改动(是关于什么的改动?)
### 🔗 相关 Issue
<!--
1. 描述相关需求的来源,如相关的 issue 讨论链接。
-->
### 💡 需求背景和解决方案
<!--
1. 要解决的具体问题。
2. 列出最终的 API 实现和用法。
3. 涉及UI/交互变动需要有截图或 GIF。
-->
### ☑️ 请求合并前的自查清单
⚠️ 请自检并全部**勾选全部选项**。⚠️
- [ ] 文档已补充或无须补充
- [ ] 代码演示已提供或无须提供
- [ ] TypeScript 定义已补充或无须补充
+119
View File
@@ -0,0 +1,119 @@
name: Build and Test
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
jobs:
build-and-test:
runs-on: windows-latest
strategy:
matrix:
node-version: [20.x]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9.9.0
run_install: false
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies (workspace recursive)
run: pnpm -r install --frozen-lockfile
- name: Test WeChat Mini Program dev mode
shell: bash
run: |
echo "Testing WeChat Mini Program dev mode startup..."
timeout 30s pnpm dev:mp-weixin || true
echo "✅ WeChat Mini Program dev mode test completed"
- name: Test H5 dev mode
shell: bash
run: |
echo "Testing H5 dev mode startup..."
timeout 30s pnpm dev:h5 || true
echo "✅ H5 dev mode test completed"
- name: Test iOS dev mode
shell: bash
run: |
echo "Testing iOS dev mode startup..."
timeout 30s pnpm dev:app-ios || true
echo "✅ iOS dev mode test completed"
- name: Build WeChat Mini Program
run: pnpm build:mp-weixin
- name: Build H5
run: pnpm build:h5
- name: Build iOS
run: pnpm build:app-ios
- name: Upload WeChat Mini Program artifacts
uses: actions/upload-artifact@v4
with:
name: wechat-miniprogram-build
path: dist/build/mp-weixin/
retention-days: 7
- name: Upload H5 artifacts
uses: actions/upload-artifact@v4
with:
name: h5-build
path: dist/build/h5/
retention-days: 7
- name: Upload iOS artifacts
uses: actions/upload-artifact@v4
with:
name: ios-build
path: dist/build/app-ios/
retention-days: 7
- name: Build summary
run: |
echo "## Build and Test Summary" >> $GITHUB_STEP_SUMMARY
echo "### Development Mode Tests" >> $GITHUB_STEP_SUMMARY
echo "✅ WeChat Mini Program dev mode test completed" >> $GITHUB_STEP_SUMMARY
echo "✅ H5 dev mode test completed" >> $GITHUB_STEP_SUMMARY
echo "✅ iOS dev mode test completed" >> $GITHUB_STEP_SUMMARY
echo "### Build Results" >> $GITHUB_STEP_SUMMARY
echo "✅ WeChat Mini Program build completed" >> $GITHUB_STEP_SUMMARY
echo "✅ H5 build completed" >> $GITHUB_STEP_SUMMARY
echo "✅ iOS build completed" >> $GITHUB_STEP_SUMMARY
echo "📦 All artifacts uploaded successfully" >> $GITHUB_STEP_SUMMARY
- name: Build Docs (VitePress)
run: pnpm -C docs run docs:build
- name: Upload Docs artifacts
uses: actions/upload-artifact@v4
with:
name: docs-build
path: docs/.vitepress/dist/
retention-days: 7
+54
View File
@@ -0,0 +1,54 @@
name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x]
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9.9.0
run_install: false
- name: Create Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Generate GitHub Changelog
run: pnpx changelogithub
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Release summary
run: |
echo "## Release Summary" >> $GITHUB_STEP_SUMMARY
echo "### Version: ${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY
echo "### Release Status" >> $GITHUB_STEP_SUMMARY
echo "✅ Release created successfully" >> $GITHUB_STEP_SUMMARY