Skip to content

Commit 1d954e8

Browse files
committed
feat: 添加GitHub Pages自动部署支持
- 配置Vite支持GitHub Pages base路径 - 创建GitHub Actions自动部署工作流 - 添加.gitignore文件 - 更新所有文案从TempIdentity Generator到SignUpGenerator
1 parent 4af4baf commit 1d954e8

26 files changed

+7254
-0
lines changed

.eslintrc.cjs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
module.exports = {
2+
root: true,
3+
env: { browser: true, es2020: true },
4+
extends: [
5+
'eslint:recommended',
6+
'@typescript-eslint/recommended',
7+
'eslint-plugin-react-hooks/recommended',
8+
],
9+
ignorePatterns: ['dist', '.eslintrc.cjs'],
10+
parser: '@typescript-eslint/parser',
11+
plugins: ['react-refresh'],
12+
rules: {
13+
'react-refresh/only-export-components': [
14+
'warn',
15+
{ allowConstantExport: true },
16+
],
17+
},
18+
}

.github/workflows/deploy.yml

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
name: Deploy to GitHub Pages
2+
3+
# 触发条件:当main分支有push或PR时
4+
on:
5+
push:
6+
branches: [ main ]
7+
pull_request:
8+
branches: [ main ]
9+
10+
# 设置权限
11+
permissions:
12+
contents: read
13+
pages: write
14+
id-token: write
15+
16+
# 并发设置:同一时间只允许一个部署
17+
concurrency:
18+
group: "pages"
19+
cancel-in-progress: false
20+
21+
jobs:
22+
# 构建任务
23+
build:
24+
runs-on: ubuntu-latest
25+
steps:
26+
- name: Checkout 代码
27+
uses: actions/checkout@v4
28+
29+
- name: 检测包管理器
30+
id: detect-package-manager
31+
run: |
32+
if [ -f "${{ github.workspace }}/yarn.lock" ]; then
33+
echo "manager=yarn" >> $GITHUB_OUTPUT
34+
echo "command=install" >> $GITHUB_OUTPUT
35+
echo "runner=yarn" >> $GITHUB_OUTPUT
36+
exit 0
37+
elif [ -f "${{ github.workspace }}/package.json" ]; then
38+
echo "manager=npm" >> $GITHUB_OUTPUT
39+
echo "command=ci" >> $GITHUB_OUTPUT
40+
echo "runner=npx --no-install" >> $GITHUB_OUTPUT
41+
exit 0
42+
else
43+
echo "Unable to determine package manager"
44+
exit 1
45+
fi
46+
47+
- name: 设置 Node.js
48+
uses: actions/setup-node@v4
49+
with:
50+
node-version: "20"
51+
cache: ${{ steps.detect-package-manager.outputs.manager }}
52+
53+
- name: 设置 GitHub Pages
54+
id: pages
55+
uses: actions/configure-pages@v4
56+
57+
- name: 安装依赖
58+
run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}
59+
60+
- name: 构建项目
61+
run: ${{ steps.detect-package-manager.outputs.runner }} vite build
62+
env:
63+
NODE_ENV: production
64+
65+
- name: 上传构建产物
66+
uses: actions/upload-pages-artifact@v3
67+
with:
68+
path: ./dist
69+
70+
# 部署任务
71+
deploy:
72+
environment:
73+
name: github-pages
74+
url: ${{ steps.deployment.outputs.page_url }}
75+
runs-on: ubuntu-latest
76+
needs: build
77+
steps:
78+
- name: 部署到 GitHub Pages
79+
id: deployment
80+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
10+
node_modules
11+
dist
12+
dist-ssr
13+
*.local
14+
15+
# Editor directories and files
16+
.vscode/*
17+
!.vscode/extensions.json
18+
.idea
19+
.DS_Store
20+
*.suo
21+
*.ntvs*
22+
*.njsproj
23+
*.sln
24+
*.sw?
25+
26+
# Environment variables
27+
.env
28+
.env.local
29+
.env.development.local
30+
.env.test.local
31+
.env.production.local
32+
33+
# Build artifacts
34+
build/
35+
dist/
36+
37+
# Temporary files
38+
.tmp/
39+
tmp/
40+
temp/
41+
42+
# Log files
43+
*.log
44+
45+
# Coverage directory used by tools like istanbul
46+
coverage/
47+
*.lcov
48+
49+
# nyc test coverage
50+
.nyc_output/
51+
52+
# Dependency directories
53+
node_modules/
54+
55+
# Optional npm cache directory
56+
.npm
57+
58+
# Optional eslint cache
59+
.eslintcache
60+
61+
# Optional REPL history
62+
.node_repl_history
63+
64+
# Output of 'npm pack'
65+
*.tgz
66+
67+
# Yarn Integrity file
68+
.yarn-integrity

README.md

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
# SignUpGenerator
2+
3+
一个用于生成临时注册资料的工具,支持生成邮箱、用户名、密码和姓名等信息,仅用于测试目的。
4+
5+
## 🚀 快速启动
6+
7+
### 方法一:使用启动脚本(推荐)
8+
9+
```bash
10+
# 启动项目(自动处理进程管理)
11+
./start.sh
12+
13+
# 停止项目
14+
./stop.sh
15+
```
16+
17+
### 方法二:手动启动
18+
19+
```bash
20+
# 安装依赖
21+
npm install
22+
23+
# 启动开发服务器
24+
npm run dev
25+
```
26+
27+
## 📋 脚本功能
28+
29+
### start.sh
30+
- ✅ 自动检测并杀死占用端口的旧进程
31+
- ✅ 确保单实例运行
32+
- ✅ 智能依赖检查和安装
33+
- ✅ 彩色输出和友好提示
34+
- ✅ 自动打开浏览器访问地址
35+
- ✅ 进程监控和日志记录
36+
37+
### stop.sh
38+
- ✅ 优雅停止所有相关进程
39+
- ✅ 清理临时文件和PID文件
40+
- ✅ 彩色输出和状态反馈
41+
42+
## 🌐 访问地址
43+
44+
- 本地访问: http://localhost:54686
45+
- 网络访问: http://[您的IP地址]:54686
46+
47+
## 🛠️ 技术栈
48+
49+
- **前端**: React 18 + TypeScript
50+
- **UI库**: Material-UI (MUI)
51+
- **构建工具**: Vite
52+
- **数据存储**: IndexedDB
53+
- **数据生成**: Faker.js
54+
55+
## 📂 项目结构
56+
57+
```
58+
SignUpGenerator/
59+
├── src/
60+
│ ├── components/ # React组件
61+
│ │ ├── MainLayout.tsx # 主布局
62+
│ │ ├── Navigation.tsx # 导航栏
63+
│ │ ├── ProfileCard.tsx # 字段卡片
64+
│ │ ├── SetupWizard.tsx # 设置向导
65+
│ │ ├── AdvancedSettings.tsx # 高级设置
66+
│ │ ├── ActionButtons.tsx # 操作按钮
67+
│ │ └── UsedEmailsPage.tsx # 已使用邮箱页面
68+
│ ├── context/ # React Context
69+
│ │ └── AppContext.tsx # 应用状态管理
70+
│ ├── types/ # TypeScript类型
71+
│ │ └── index.ts # 类型定义
72+
│ ├── utils/ # 工具函数
73+
│ │ ├── generators.ts # 数据生成器
74+
│ │ ├── indexedDB.ts # IndexedDB工具
75+
│ │ └── settingsDB.ts # 设置存储
76+
│ ├── App.tsx # 应用入口
77+
│ └── main.tsx # 主入口
78+
├── start.sh # 启动脚本
79+
├── stop.sh # 停止脚本
80+
├── package.json # 项目配置
81+
├── vite.config.ts # Vite配置
82+
└── README.md # 项目说明
83+
```
84+
85+
## ✨ 主要功能
86+
87+
### 🎯 注册资料生成
88+
- 邮箱地址生成(支持自定义域名)
89+
- 用户名生成(基于姓名关联)
90+
- 安全密码生成(可配置复杂度)
91+
- 真实姓名生成(中英文支持)
92+
93+
### ⚙️ 高级配置
94+
- 自定义邮箱域名管理
95+
- 密码生成规则配置
96+
- 用户名长度设置
97+
- 数据生成偏好设置
98+
99+
### 📊 数据管理
100+
- 已使用邮箱记录
101+
- 数据筛选和搜索
102+
- 批量导出功能
103+
- 本地数据存储
104+
105+
### 🔧 用户体验
106+
- 响应式设计
107+
- 深色/浅色主题
108+
- 国际化支持
109+
- 无障碍访问
110+
111+
## ⚠️ 免责声明
112+
113+
**本工具仅用于辅助测试目的,严禁用于任何非法用途。用户需对使用本工具产生的任何后果承担全部责任。**
114+
115+
## 📝 开发说明
116+
117+
### 环境要求
118+
- Node.js >= 16
119+
- npm >= 8
120+
121+
### 开发模式
122+
```bash
123+
npm run dev # 启动开发服务器
124+
npm run build # 构建生产版本
125+
npm run preview # 预览生产版本
126+
npm run lint # 代码检查
127+
```
128+
129+
### 端口配置
130+
项目默认运行在端口 54686,该端口已在配置中固定,请勿修改。
131+
132+
## 🤝 贡献
133+
134+
欢迎提交 Issue 和 Pull Request 来改进这个项目。
135+
136+
## 📄 许可证
137+
138+
MIT License

index.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!doctype html>
2+
<html lang="zh-CN">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<title>SignUpGenerator - 注册资料生成工具</title>
8+
</head>
9+
<body>
10+
<div id="root"></div>
11+
<script type="module" src="/src/main.tsx"></script>
12+
</body>
13+
</html>

0 commit comments

Comments
 (0)