Files
wukuang/packages/form-designer/README.md
T
2026-05-23 14:05:22 +08:00

239 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 模板说明
## 包管理工具
`pnpm@10+`
## 脚本命令
| 命令 | 说明 |
| ---------- | ---------------------------------------------- |
| prepare | husky钩子,安装依赖时会自动执行husky的准备工作 |
| dev | 开发指令,环境:dev |
| dev:qa | 开发指令,环境:qa |
| dev:pre | 开发指令,环境:pre |
| dev:prod | 开发指令,环境:prod |
| build | 编译指令(type-check + build-only |
| test:unit | 单测指令 |
| build-only | 仅编译指令 |
| type-check | ts类型校验 |
| lint | eslint校验 |
| lint:fix | eslint校验(带自动fix |
## 使用
- 确保你安装了正常的包管理工具
pnpm@10+
- 安装依赖
```
pnpm install
```
- 运行项目
```
pnpm run dev
```
> 你可以自由选择不同的环境指令
- 编译项目
```
pnpm run build
```
## 技术栈及主要依赖说明
主要技术栈:vite + vue3 + vue-router
### 三方依赖说明
| 名称 | 版本 | 作用 | 备注 |
| ------------------------------------------------------------------------------------- | ----- | ------------------------ | --------------------------------------------------------------------------------- |
| [element-plus-cisdi](https://design.cisdigital.cn/plus/zh-CN/guide/installation.html) | 1.0.0 | 基础UI组件库 | element-plus定制版 |
| vue | 3.5+ | UI框架 | |
| pinia | 2+ | 状态管理 | |
| vite | 6+ | 前端开发与构建工具 | |
| eslint | 9+ | 代码格式化,风格统一管理 | 提交校验:husky + lint-staged + eslint<br />校验规则使用@eslint/config |
| @commitlint/cli | 19+ | commit内容校验 | 提交校验:husky + commitlint<br />校验规则使用@commitlint/config-conventional@19+ |
| vue-router | 4+ | 路由库 | |
| dayjs | 1.11+ | 时间工具库 | |
| lodash-es | 4+ | 常见工具库 | |
| @vueuse/core | 12+ | 常见hook库 | |
| vitest | 3+ | 单元测试 | |
| echarts | 5+ | 图表库 | |
| vue-i18n | 10+ | 多语言管理库 | |
| unocss | 66+ | 原子类css | |
| husky | 9+ | git hook | |
### 自有依赖说明
| 名称 | 作用 | 备注 |
| -------------------------- | ---------------- | --------------------------------------- |
| @lingshu/icon | icon组件 | 用于接入字体图标 |
| @lingshu/vite-plugin-msw | 本地mock数据模拟 | 通过vite变量`VITE_ENABLE_MOCK`启用/关闭 |
| @lingshu/vite-plugin-share | 共享依赖接入 | 用于接入通用共享依赖 |
| @lingshu/integration-vue3 | 主子应用对接插件 | |
| @lingshu/language-lib | 多语言管理库 | 由于后端支持原因,未完善,后续统一修改 |
| @lingshu/request-lib | 请求库 | axios二封产物 |
| @lingshu/theme-lib | 多主题插件 | |
> 版本建议:若依赖共享则跟随共享版本走,否则以最新版本为准
## 基础目录
```
.
├── .husky/ # 存储Git钩子脚本,用于自定义Git操作行为
├── .vscode/ # 存储Visual Studio Code的配置文件,如代码片段、设置等
├── coverage/ # 存储代码覆盖率报告,用于评估测试的有效性(可能存在)
├── dist/ # 存储构建后的分发文件,通常是生产环境部署的文件
├── node_modules/ # 存储项目依赖的Node.js模块
├── public/ # 存储公共资源文件,如网站图标等
├── src/ # 存储源代码
| ├── api/ # api请求封装
│ ├── assets/ # 存储静态资源文件,如图像、样式表等
│ │ ├── dark # 暗色主题静态资源
│ │ ├── light # 亮色主题静态资源
│ ├── components/ # 存储可复用的Vue组件
│ ├── constants/ # 存储全局常量
│ ├── directives/ # 存储自定义Vue指令
│ ├── hooks/ # 存储自定义Vue钩子函数
│ ├── icons/ # 通用字体图标资源
│ ├── locales/ # 当前库多语言管理以及非自研三方库多语言管理(如:element-plus
│ ├── router/ # 存储Vue Router的路由配置
│ ├── stores/ # 存储Vuex状态管理的配置
│ ├── styles/ # 存储通用css
│ ├── type-utils/ # 通用ts类型辅助函数
│ ├── types/ # 存储通用ts类型
│ ├── utils/ # 存储工具函数和实用程序
│ │ ├── requestUtils.ts # 请求库工具
│ ├── views/ # 存储页面级别的Vue组件
│ ├── App.vue # 根Vue组件,通常包含整个应用的布局
│ ├── build-import.ts # production模式导入内容
│ ├── dev-import.ts # 非production导入内容
│ └── main.ts # 入口文件,用于启动和编译Vue应用
├── .env # 存储通用环境变量
├── .env.dev # 存储dev环境变量
├── .env.pre # 存储pre环境变量
├── .env.prod # 存储prod环境变量
├── .env.qa # 存储qa环境变量
├── .gitattributes # Git属性文件,用于设置文件属性和行为
├── .gitignore # Git忽略文件,指定Git不应跟踪的文件和文件夹
├── index.html # HTML入口文件,通常是Web应用的入口页面
├── package.json # 项目配置文件,包含依赖列表、脚本和元数据
├── .npmrc # npm配置文件,用于设置npm的配置选项
├── .nvmrc # nvm配置文件,用于设置node的版本
├── pnpm-lock.yaml # pnpm锁文件,用于确保依赖版本的一致性
├── README.md # 项目自述文件,包含项目介绍、安装和使用指南
├── tsconfig.json # TypeScript配置文件,设置TypeScript的编译选项
├── .env.d.ts # 环境变量的TypeScript声明文件
├── tsconfig.app.json # TypeScript配置文件,用于配置应用程序的编译选项
├── tsconfig.node.json # TypeScript配置文件,用于配置Node.js环境的编译选项
├── tsconfig.vitest.json # TypeScript配置文件,用于配置Vitest测试框架的编译选项
├── vite.config.ts # Vite配置文件,设置Vite构建工具的选项
├── commitlint.config.ts # Commitizen配置文件,设置提交消息的规范
├── eslint.config.mts # ESLint配置文件,设置代码规范和风格
├── uno.config.ts # UnoCSS配置文件,设置UnoCSS的选项
└── vitest.config.ts # Vitest配置文件,设置Vitest测试框架的选项
```
## 接入主应用
to-do
## 环境
### 环境说明
项目模板中预置了多个环境配置文件,可视实际开发情况进行使用
- `.env`:通用环境配置
- `.env.local`: 通用环境配置,但是会被git忽略
- `.env.dev`dev环境配置
- `.env.pre`pre环境配置
- `.env.prod`prod环境配置
- `.env.qa`qa环境配置
> 运行相应指令即可启动对于环境文件的环境变量
>
> 如:启动 `pnpm run dev:qa`
>
> 可使`.env.qa`文件中的环境变量生效
>
> 更详细的说明可参考:[vite 环境变量](https://vitejs.cn/vite5-cn/guide/env-and-mode.html#env-variables)
### 环境变量说明
**各环境文件配置**
| 属性名称 | 作用 |
| ------------- | --------------------------------------------------- |
| VITE_API_BASE | 请求代理前缀,会在`vite.config.ts`的proxy配置中使用 |
**local本地化配置**
`.env.local`文件不会上传到git仓库,主要用于存放一些在开发过程中需要频繁修改的属性
| 属性名称 | 作用 |
| ---------------- | ------------ |
| VITE_ENABLE_MOCK | 是否开启Mock |
## vscode插件
本模板内置推荐项:
| 插件 | 作用 |
| ------------ | ------------------------- |
| unocss | 原子类css的代码提示及补全 |
| eslint | 格式化插件 |
| vitest | 单测插件 |
| vue-official | vue代码提示 |
非内置推荐项:
| 插件 | 作用 |
| ------------------- | --------------------------------------------------------------------------------------------------------------- |
| git-commit-plugin | commit交互式填写工具,可便捷完成commit内容 |
| var-translate-en | 变量命名工具。支持单驼峰、双驼峰、下划线、全大写等格式;支持中译英,英译英;支持阿里等服务提供商的免费百万token |
| vscode-code-to-type | js/json转ts类型定义 |
| code-spell-checker | 单词拼写检查 |
> 相关配置文件放于 `.vscode/extensions.json`和`.vscode/settings.json`中,若需要进一步定制化,可修改其文件配置
## 多主题接入说明
见[ones链接](https://ones.cisdigital.cn/wiki/#/team/SKG3mSQb/space/4W7YLcLr/page/4MCTXeA6)
## 其他说明
- `.gitkeep`文件用于在git仓库中保证目录的留存,实际使用可删除
- views和router目录下存放及使用的一些页面文件属于示例文件,可删除
- 目前项目未增加独立部署时的编译指令,可根据需求自行添加
## 常见问题
### 1、当存在全局样式的时候,如何在接入主应用的情况下生效?(如Dialog元素挂载到body下样式失效)
使用插件,示例配置如下:
@lingshu/vite-plugin-head-style插件废弃;
具体说明文档可见:https://ones.cisdigital.cn/wiki/#/team/SKG3mSQb/space/4W7YLcLr/page/Xzhqbd8P
### 2、报错 Failed to fetch dynamically imported module: xxx
1、检查网络请求中是否有报错,根据报错信息对相关模块进行处理
2、请不要使用AutoImport插件对通用排包依赖进行处理(即@lingshu/vite-plugin-share处理的依赖)
## to-do
- 多语言发布脚本,引用新的多语言npm库
## provide
1、中间设计器组件可使用