# VEXIOS **Repository Path**: guo-chengcan/VEXIOS ## Basic Information - **Project Name**: VEXIOS - **Description**: 一个基于monorepo架构的商城项目 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-03-27 - **Last Updated**: 2024-12-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目介绍 > **OpusMart**:“Opus”(作品、杰作)和“Mart”(市场)。这个名字寓意着商场是一个精品杰作的集合地,提供精致、独特的商品,适合文化艺术品类或者精心策划的高端商城。 项目使用`monorepo`架构: - `apps`:存放项目 - `packages`:存放组件 - `libs`:存放工具 `OpusMart`项目依赖:基于Vue3 + ElementPlus + `monorepo`架构依赖:ESLint v9.15.0 + # 开发指南 > **安装依赖时,必须明确是 _开发环境_ 依赖、还是 _生产环境_ 依赖** ## 项目食用辅助 ### 一、icon-park图标使用方式 1. 需要的图标从[icon-park官网](https://iconpark.oceanengine.com/official)中找到后,将其以`add-file`改为`AddFile`后放入该文件内:apps/opus-mart/src/assets/icon.js 2. 使用时,在需要的地方使用``使用即可。 还有其他使用方式: ```vue const icon=ref("i-AddFile") ``` ## 使用的依赖/包/扩展 ### 开发环境依赖 1. 代码格式化相关:`@eslint/js`、`eslint`、`eslint-plugin-vue`、`globals`、`prettier`、`eslint-plugin-prettier`、`eslint-config-prettier` 2. git相关:`husky`、`lint-staged`、`@commitlint/{cli,config-conventional}` ### 使用的VS Code扩展 1. ESLint 2. Prettier - Code formatter 3. EditorConfig for VS Code 4. JSONComments ## shell命令相关 ### 开发相关命令 1. 初始化依赖 ```shell pnpm i ``` 2. 启动服务 ```shell pnpm -F=opus-mart run dev # or pnpm run om ``` 3. 添加依赖 ```shell # -P是生产环境、-D是开发环境 pnpm -F=opus-mart add -P pnpm -F=opus-mart add -D # 向工作区根目录添加依赖 pnpm add -D -w ``` ### 包管理器相关命令 1. 升级node > 使用nvm的情况可直接使用命令,否则需要手动下载安装 ```shell nvm install v20.15.0 nvm use v20.15.0 ``` 2. 安装pnpm ```shell npm install -g pnpm@9.14.2 ``` 3. 在该项目中,我通过限制npm的版本,来达到了无法使用npm的目的,以统一使用pnpm,避免项目管理混乱 ### git相关命令 1. 提交规范: `(): ` | type | 描述 | | ----------- | ----------- | | `feat` | 新增功能 | | `fix` | 修复bug | | `docs` | 文档变更 | | `style` | 代码格式优化 | | `refactor` | 代码重构 | | `perf` | 性能优化 | | `test` | 对测试的改动 | | `build` | 依赖的变更 | | `ci` | 修改 CI 配置 | | `revert` | 回滚 commit | | `chore` | 对辅助工具和库的更改 | **注意点:** type和subject间的冒号是英文半角,且后面 **衔接空格** 。示例:``+`:`+` `+`` 2. git-cz快捷命令: ```shell # 需先全局安装 commitizen pnpm i -g commitizen # 在终端中运行(法一) git cz # (法二) cz # (法三) pnpm run commit ``` 3. 回退版本 - **请使用revert回退版本**,避免发生无可挽回的错误 ```shell # 回退指定版本(留下记录) git revert <版本号> # 终止回退版本 git revert --abort ``` # 可能遇到的问题 1. Cannot destructure property 'manifest' of 'manifestsByPath[rootDir]' as it is undefined. 该问题出现在:`pnpm add xxx`时。这是因为pnpm无法找到安装目录。 解决方法:请使用`pnpm -F="opus-mart" add xxx`或`pnpm add xxx -w`来[指定工作目录](#开发相关命令)。(此问题仅出现在monorepo架构,具体解决方案可查看:https://github.com/pnpm/pnpm/issues/6524) 2. .husky/pre-commit: .husky/pre-commit: cannot execute binary file 该问题出现原因是:`.husky`的`pre-commit`文件编码为`utf-16`,导致文件无法被解码。 解决方法:将`pre-commit`文件编码改为`utf-8`即可。(此问题可能源于`husky init`命令,自动生成的文件编码不正确,具体解决方案可查看:https://stackoverflow.com/questions/77364609/cannot-execute-binary-file-exec-format-error-code-126) 3. git提交时提示:`Git:vexios@1.0.1 lint:lint-staged E:\VS Code\Project\VEXIOS` 该问题出现的原因是:你没有安装要求的提交规范编写msg,具体可点击`显示命令输出`按钮查看 解决方法:请按照提示[修改msg](#git相关命令),~~ 或者使用`git commit --no-verify`绕过检查。~~ ## 项目开发中的问题 1. Rom遇到的问题会使用`@rom:error`来标记,以便快速查找 # 展望 1. 可添加的依赖: `@antfu/eslint-config`、`stylelint`、`lodash-es`、 2. 可以使用的技术: `vueUse`、`turbo`、[`rimraf`](https://github.com/isaacs/rimraf)、[`del`](https://www.npmjs.com/package/del)、`consola`、`rollup-plugin-visualizer` 3. 可使用的语言: `typescript`