@@ -6,18 +6,68 @@ alwaysApply: true
66这是一个开源的IM(即时通讯)项目,对标大厂和开源IM产品。
77
88### 技术架构
9- vite+ eluniappectron+ vue3
9+ vite + electron + vue3
1010
11- ### ts别名
11+ ### 文件命名规范
12+ - 所有文件(包括组件)不能以大写字母开头,如果是多个单词采用驼峰命名(kebab-case 或 lowCamelCase,根据项目习惯,此处恢复为您要求的规范)。
13+ - 如果文件夹名已包含了某个功能前缀(如 `user`),则子文件不再重复该前缀。
1214
13- ### 文件命名
14- - 所有的文件不能以大写字母开头, 如果是多个单词采用驼峰命名
15- - 文件名字如果我文件夹已经携带了xx, 这个子文件就不要在携带xxx开头的了
15+ ### CSS 编写
16+ - 使用 Less,采用嵌套结构开发。
1617
17- ### css的编写
18- - 我使用scss, 你的css开发的时候采用嵌套结构
18+ ### Pinia 规范
19+ - 参考模版(替换 `xx` 为模块名):
20+ ```typescript
21+ import { defineStore } from 'pinia'
1922
23+ export const usexxStore = defineStore('usexxStore', {
24+ state: () => ({
25+ }),
26+ getters: {
27+ },
28+ actions: {
29+ },
30+ })
31+ ```
32+
33+ ### 文件与路径
34+ - 不要编写 .md 文档。
35+ - 尽可能使用别名(如 `@/`),严禁使用 `../` 之类的相对路径。
36+
37+ ### .vue 文件编写规范
38+ - 严禁使用 `<script lang="ts" setup>`,必须采用 `export default defineComponent` 结构。
39+ - 标签顺序:`<template>` -> `<script>` -> `<style>`。
40+ - 严禁直接使用 `<svg>` 标签,必须使用 `<img>` 标签引入 SVG 文件路径。
41+
42+ ### 资源管理
43+ - 严禁使用文本表情包(如 📞、✓),统一使用 SVG 文件。
44+ - SVG 存放路径:`src/render/assets/images/[module]/[name].svg`。
45+ - SVG 素材由 AI(我)负责生成/编写。
46+
47+ ### 接口规范
48+ - 数据结构统一为:
49+ ```typescript
50+ {
51+ code: number,
52+ msg: string,
53+ result: any
54+ }
55+ ```
56+ - 接口类型以 `I` 开头,以 `Req` 或 `Res` 结尾。
57+ - 接口方法名必须包含 `Api` 后缀。
58+ - 严禁使用 `import * as xxxApi` 语法。
59+ - 由于底层已统一处理异常,业务代码中严禁写 `try...catch`,直接根据 `code === 0` 判断成功,非 0 则使用 `msg`。
60+
61+ ### 文件引入
62+ - 拒绝使用@/相关的
63+ - 必须使用相对路径或者下面的路径
64+ ```typescript
65+ commonModule: path.resolve(__dirname, 'src/common'),
66+ mainModule: path.resolve(__dirname, 'src/main'),
67+ renderModule: path.resolve(__dirname, 'src/render'),
68+ preloadModule: path.resolve(__dirname, 'src/preload'),
69+ ```
2070### 切记
21- - 不要过度开发
22- - 不要写md文件
23- - 尽可能使用别名不要使用../之类的相对路径
71+ - 拒绝过度开发,保持代码精简。
72+ - 严格遵循路径别名和文件命名。
73+
0 commit comments