# oasis-web-pc **Repository Path**: androidhelloworld/oasis-web-pc ## Basic Information - **Project Name**: oasis-web-pc - **Description**: ggggggggggggggggggggggggggggggggg - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-03-27 - **Last Updated**: 2023-05-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 子模块代码拉取 测试 ```bash git clone http://119.3.164.220:8090/oasis/oasis-web-pc.git --recurse-submodules ``` ## 更新子模块代码 目前公共模块代码 ``` cd common && git pull origin master ``` ## 开发前提 - `node` 版本大于等于 `16` - 全局安装 `pnpm` ```bash npm install -g pnpm ``` - 安装项目 ```bash pnpm bootstrap ``` - 运行项目代码 ```bash cd apps/vc-demo pnpm dev ``` ## 打包 **全量打包** 在 `apps` 下执行 `pnpm build` **局部打包** 在对应的目录执行 `pnpm build` **打包本地测试** > 需要修改 `.env.production` 中的 `VITE_PUBLIC_PATH` ## 公共组件开发流程 见 `packages/components/Readme.md` ## 业务内开发 - 公共组件与业务组件无需引入,使用组件名称即可在模板使用。 - 一些包的引入如 `vue`,`vue use` 可直接使用无需引入 - `class` 快捷方式参照 吗,[https://www.tailwindcss.cn/](https://www.tailwindcss.cn/) ## 文档网址 - `vue use`:[https://vueuse.org](https://vueuse.org) - `unocss` :[https://uno.antfu.me/](https://uno.antfu.me/) - `tailwindcss`:[https://www.tailwindcss.cn/](https://www.tailwindcss.cn/) ## 多入口页面的 title 以及默认 url 参数配置 在各自的 `vite.config.ts` 下配置,如下 ```typescript export default createViteConfig(process.cwd(), { pages: { 'app-nine': { title: '测试', urlParams: 'id=211212&token=00000', injectOptions: { data: { injectScript: '', injectCss: '', injectMeta: '', injectCode: '' } } }, 'app-six': { title: '第六个页面' } } }) as ViteConfig; ``` ## 环境变量配置说明 ### .env ```yaml # 使用开启多页面 默认 true,暂时也没适配单页面入口 VITE_USE_MORE_PAGE=true # 是否开启 vue3 的提案语法 true ``` ### .env.development ```yaml # 基本公共路径 VITE_PUBLIC_PATH=/ # 开发时跨域代理配置 VITE_PROXY=[["/basic-api","http://localhost:3000"],["/upload","http://localhost:5555/upload"]] # 启动时默认打开的页面 # 配置项:空(打开根节点包含所有页面跳转路径) | string (test-one) VITE_DEV_DEFAULT_PAGE= # 根页面链接跳转方式 # 配置项:_blank | _self VITE_PAGEJUMP_TYPE=_blank # 是否开启 vconsole VITE_OPEN_VCONSOLE=false ``` ### .env.production ```yaml # 基本公共路径 VITE_PUBLIC_PATH=http://localhost:63342/vc-uniapp-monorepo/apps/vc-template-more-project/dist/ # 是否删除日志 VITE_DROP_CONSOLE=true # 是否开启打包压缩 gzip | brotli | none VITE_BUILD_COMPRESS='none' # 是否删除打包后的源文件 VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE=false # 适配低版本浏览器 VITE_LEGACY=false # 打包 pages 下指定页面,默认为空(打包所有) # 单个页面: app-four # 多个页面(逗号分割不要有空格): app-four,app-nine # 注意更改完成打包后最好还原为空,以免后续别人打包不完整 VITE_BUILD_MATCH_FILE= ## 与上述功能相反,忽略某些 pages 下指定页面的打包,配置与上述相同 VITE_BUILD_IGNORE_MATCH_FILE= # 多页面打包是否目录是否加公共前缀 # 默认: 空 # 配置项:string (自定义名称打包后自定义名称后会自动补充 -) | true(默认取项目根目录名称) VITE_BUILD_PREFIX_NAME= # 是否开启 vconsole VITE_OPEN_VCONSOLE=false ``` ### GIT 提交规范 (web 预警通规范) 信息提交格式为 > \[(\)]: \ (#禅道号) - `commit-type`:必填项,为对应提交类型,这里约定了`feat`,`fix`,`docs`,`style`,`refactor`,`perf`,`test` ,`build`,`ci`,`chore`,`types`,`wip`,`revert`这些类别,具体代表的含义可以查看下面的*提交类别*说明。 - `scope`:可选必填项,用于描述改动的范围,如果一次 commit 修改多个模块,建议拆分成多次 commit,以便更好追踪和维护。 - `commit-msg`: 必填项,为提交信息的简要说明。 - 禅道号: 必填项,每一次提交必须对应一个禅道号,如果某次修改没有禅道号对应,请使用`#000` 。需要注意的是,禅道号必须使用`#`开头,并且一个提交只能写一个禅道号,在有多个禅道 bug 的情况下,请将不同的 bug 进行拆分提交。 提交示例 ```bash # 在F9模块添加一个新功能 git commit -m "feat(f9): F9中添加融资图谱模块 (#123)" # 不指定具体模块 git commit -m "fix: 修复xxx不显示问题 (#666)" # 当没有禅道号对应时 git commit -m "fix: xxx修复 (#000)" ``` **提交类别** | 类别 | emoji | 含义 | | ---------- | ----- | ----------------------------------------------------- | | `feat` | ✨ | 新功能 | | `fix` | 🐛 | 修复 bug | | `docs` | 📝 | 仅仅修改文档,比如 README, CHANGELOG, CONTRIBUTE 等等 | | `style` | 🎨 | 不改变代码逻辑 (仅仅修改了空格、格式缩进、逗号等等) | | `ui` | 💄 | 样式调整 | | `refactor` | ♻️ | 重构(既不修复错误也不添加功能) | | `perf` | ⚡️ | 优化相关,比如提升性能、体验 | | `test` | ✅ | 增加测试,包括单元测试、集成测试等 | | `build` | 👷 | 构建系统或外部依赖项的更改 | | `ci` | 💚 | 自动化流程配置或脚本修改 | | `chore` | 🔩 | 非 src 和 test 的修改,例如构建过程或辅助工具的变动 | | `types` | 🏷️ | 添加或更新类型 | | `wip` | 🚧 | 开发中 | | `revert` | ⏪ | 恢复先前的提交 | | `typo` | ⏪ | 拼写错误修复 | ### GIT 开发流程 **分支说明(Todo)** 项目开发到发布会使用到如下分支: - **master**: **线上分支**,预发环境测试通过后,将此分支代码编译发布到线上环境; - **dev**: **开发分支**,开发人员每天都需要拉取/提交最新代码的分支; - **test**: **测试分支**,开发人员开发完并自测通过后,发布到测试环境的分支; - **bugfix**: **bug 修复分支**,线上环境出现 bug,需要切换到 bugfix 分支进行修复; - **feature**: **功能开发分支**,以功能进行切分,创建分支; **开发流程** 1. 开发人员每天都需要拉取/提交最新的代码到 `dev` 分支; 2. 开发人员开发完毕,开始集成测试(`dev`),测试无误后提交到 `test` 分支并发布到测试环境,交由测试人员测试; 3. 测试通过后,发布到 `master` 分支上并打上标签(tag); 4. 如果线上分支出了 bug ,这时候相关开发者应该基于预发布分支(没有预发环境,就使用 `master` 分支),新建一个 bug 分支用来临时解决 bug ,处理完后申请合并到 预发布 分支。这样做的好处就是:不会影响正在开发中的功能。 ### GIT 使用流程 1. 如果自己分支不干净时,使用`git stash`添加暂存,如果是干净的可以跳过这一步; 2. 在分支上执行`git pull origin dev --rebase`,它的作用是将`dev`分支上的变动`rebase`到自己的分支上; 3. 如果出现冲突,解决后`git rebase --continue` 如果放弃此次 reabase,使用`git rebase --abort`取消; 4. 如果执行了第一步中的`stash`,此时还需要执行`git stash pop`恢复暂存的修改,如未执行步骤 1 则忽略,如出现冲突则继续解决冲突; 5. 最后提交代码到远端仓库 `git push origin [branch-name]`; 6. 到网页上,将自己分支的最新代码与 `dev` 对比,建一个 PR; 7. 预览当前 PR 的内容,并 merge 到 `dev` 分支。 #### rebase 出现冲突 1. 解决 conflict,然后继续 rebase `git rebase --continue` 2. 放弃此次 rebase 操作 `git rebase --abort` #### 不想提交的代码 1. 将代码缓存到暂存区 `git stash` 2. 将暂存的代码取出来`git stash pop` #### 误操作 git 导致代码丢失 1. 使用`git reflog`获取所有历史操作日志 2. 使用`git cherry-pick [reflog-id]`恢复某个分支的代码 ### Git Tag 版本标签常用命令说明 ```bash # 默认在 HEAD 上创建一个标签 $ git tag v1.0 # 指定一个 commit id 创建一个标签 $ git tag v0.9 f52c633 # 创建带有说明的标签,用 -a 指定标签名,-m 指定说明文字 $ git tag -a v0.1 -m "version 0.1 released" # 查看所有标签 # 注意:标签不是按时间顺序列出,而是按字母排序的。 $ git tag # 查看单个标签具体信息 $ git show # 推送一个本地标签 $ git push origin # 推送全部未推送过的本地标签 $ git push origin --tags # 删除本地标签 # 因为创建的标签都只存储在本地,不会自动推送到远程。 # 所以,打错的标签可以在本地安全删除。 $ git tag -d v0.1 # 删除一个远程标签(先删除本地 tag ,然后再删除远程 tag) $ git push origin :refs/tags/ ``` 更多详细用法请参考:https://www.liaoxuefeng.com/wiki/896043488029600/902335212905824 ### 发布 release ## 注意事项 在开发对应的模块时,一定不要忘记在对应的模块目录添加`readme.md`说明,方便他人查阅及维护。 ```markdown ## 模块名 登录模块 ## 功能描述 这是一个登录模块,包含密码登录、手机号登录...... ## 接口说明 一系列接口...... ## 注意事项 ## 负责人 ``` ### 项目指令 ```bash pnpm bootstrap # 全局安装项目 pnpm clean # 清除项目所有 node-modules pnpm reinstall # 重新安装项目 pnpm format # 以下为代码格式化 pnpm lint:eslint pnpm lint:prettier pnpm lint:stylelint ```