|
|
3 هفته پیش | |
|---|---|---|
| .cursor | 1 ماه پیش | |
| .vscode | 1 ماه پیش | |
| build | 4 هفته پیش | |
| public | 3 هفته پیش | |
| src | 3 هفته پیش | |
| types | 1 ماه پیش | |
| .env | 4 هفته پیش | |
| .env.development | 4 هفته پیش | |
| .env.localdev | 4 هفته پیش | |
| .env.production | 1 ماه پیش | |
| .env.test | 4 هفته پیش | |
| .gitignore | 1 ماه پیش | |
| .markdownlint.json | 1 ماه پیش | |
| .npmrc | 1 ماه پیش | |
| .nvmrc | 1 ماه پیش | |
| .prettierrc | 1 ماه پیش | |
| .stylelintrc.mjs | 1 ماه پیش | |
| README.md | 4 هفته پیش | |
| commit.sh | 1 ماه پیش | |
| commitlint.config.js | 1 ماه پیش | |
| eslint.config.js | 1 ماه پیش | |
| index.html | 3 هفته پیش | |
| package.json | 3 هفته پیش | |
| pnpm-lock.yaml | 3 هفته پیش | |
| postcss.config.js | 1 ماه پیش | |
| pull.sh | 1 ماه پیش | |
| push.sh | 1 ماه پیش | |
| tailwind.config.js | 1 ماه پیش | |
| tsconfig.json | 1 ماه پیش | |
| vite.config.ts | 3 هفته پیش |
基于 React + TypeScript + Vite 的 H5 前端项目。
pnpm install --frozen-lockfile
pnpm dev
浏览器访问控制台输出的本地地址即可。
| 命令 | 说明 |
|---|---|
pnpm dev |
本地开发(使用 .env.localdev + .env) |
pnpm build |
生产构建(等价于 build:prod) |
pnpm build:dev |
开发模式构建(.env.development) |
pnpm build:prod |
生产模式构建(.env.production) |
pnpm build:test |
测试环境构建(.env.test) |
pnpm preview |
预览构建产物(使用 localdev 模式) |
pnpm lint / pnpm lint:fix |
ESLint 检查 / 自动修复 |
pnpm stylelint / pnpm stylelint:fix |
样式检查 / 自动修复 |
通过不同 .env 文件区分环境,Vite 按 mode 加载:
| 文件 | 何时加载 |
|---|---|
.env |
始终加载(公共默认) |
.env.localdev |
pnpm dev / pnpm preview(--mode localdev) |
.env.development |
pnpm build:dev |
.env.production |
pnpm build / pnpm build:prod |
.env.test |
pnpm build:test |
.env.local |
本地覆盖,除 test 外都会加载(一般不提交) |
需在环境文件中配置的变量见 .env 内注释或项目文档。
src/utils/request)├── build/ # Vite 构建相关(插件、工具)
├── public/ # 静态资源
├── src/
│ ├── assets/ # 资源
│ │ └── iconify/ # 单色 single-color、多色 multi-color 图标
│ ├── components/ # 公共组件
│ ├── config/ # 应用与请求配置(含 request 拦截器、错误处理)
│ ├── defines/ # 枚举与常量
│ ├── hooks/ # 公共 Hooks
│ ├── i18n/ # 国际化配置
│ ├── layouts/ # 布局
│ ├── locales/ # 多语言文案(zh-CN、en-US、fa-IR)
│ ├── models/ # 全局状态 Model
│ ├── pages/ # 页面(按页面分目录)
│ ├── router/ # 路由配置
│ ├── services/ # API 接口(按模块分目录)
│ ├── styles/ # 全局样式
│ ├── utils/ # 工具与 request 封装
│ ├── App.tsx
│ └── main.tsx
├── types/ # 全局类型与 env 类型
├── index.html
├── vite.config.ts
└── package.json
locales,禁止在代码中硬编码src/defines/,请求在 src/services/ 按模块组织src/pages/ 下建目录、在 routes 与 locales 中注册src/models/,通过 createModel(hook, name) 创建。const user = userModel.useModel(),使用返回的状态与方法。autoImportModels 注入所有 Model 的 Provider。详见 src/utils/model/ 与现有 userModel、dialogModel、userConfigModel 实现。
src/assets/iconify/single-color/,会转为 currentColor,可用 className 控制颜色。src/assets/iconify/multi-color/,保留原色。import icon from '@/assets/iconify/single-color/xxx.svg',再 <Icon icon={icon} />(@iconify/react)。src/locales/ 下按语言分目录(zh-CN、en-US、fa-IR),每语言含 common、components、menus、pages 等模块。const { t } = useTranslation();,t('key') 或带命名空间的 key。src/utils/request,基础配置与拦截器在 src/config/request/(认证、加解密、错误处理)。src/services/,每模块可有 typings.d.ts + index.ts。import { fetchXxx } from '@/services/xxx',错误由统一错误处理兜底,可选 skipErrorHandler 自行处理。src/utils/localUtils、src/utils/sessionUtils 提供 createLocalTools / createSessionTools,支持按 key/value 加密与命名空间。dist/,将对应环境(如 test/production)的构建结果部署到静态服务器或 CDN 即可。build:dev / build:test / build:prod 与对应 .env.* 区分。