你的前端项目目录是啥样的?

195 阅读2分钟

src=http___ci.xiaohongshu.com_2841718d-da00-60b6-9aaa-daa1e0943f05_imageView2_2_w_1080_format_jpg&refer=http___ci.xiaohongshu.webp 任何项目开发如果没有规则,到后期维护起来会越来越难,每次文件命名不知是驼峰命名还是中划线链接,每个人习惯不同,到最后项目,嗯,怎么说呢,乱七八糟~~

我觉得没有啥好坏之分,婆说婆有理,公说公有理~~

就好比这些雨伞,你可以有自己的颜色,可以有自己的代码风格,但不能超出雨伞的骨架范围,否则就失去了雨伞的作用,破坏了整体的协调

统一规范方能彰显规律之美~~

***(所有文件命名遵循kebab-case形式)***
|- src 开发目录
|-- 1、api api请求,- a.ts 一般按照页面进行划分
|-- |-- a.ts
|-- |-- b.ts 
|-- |-- common.ts 存放不属于某个页面的通用的接口
|-- 2、assets 静态资源
|-- icons 存放字体文件,或svg图标
|-- images 存放图片资源
|-- |-- moudle-a 存放a模块的图片
|-- |-- moudle-b
|-- |-- common 存放公共使用的图片
|-- |-- |-- bg-page.png 作为背景的使用bg-开头,命名遵循kebab-case形式
|-- |-- |-- ...
|-- styles 存放全局样式
|-- |-- element-ui.cover.scss 对elementui的样式覆盖
|-- |-- index.scss 入口导入所有样式文件,注意引入顺序!!
|-- 3、constant 存储一些常量
|-- |-- index.ts 如:全局PAGE_SIZE等 (若业务分界线较明显,可按业务拆分常量)
|-- 4、components 私有组件(一般存放不涉及业务的公共组件,若与业务强相关放在对应业务组件中)
|-- |-- base-step 如1:步骤条基础组件,一般以base开头,命名遵循kebab-case形式
|-- |-- |-- index.vue (vue3:一般dom、style、js三个文件,若极为简单可只一个index.vue)
|-- |-- |-- index.ts (vue2:一般dom+js、style两个文件,若极为简单可只一个index.vue)
|-- |-- |-- index.scss
|-- |-- base-dialog 如2:弹窗基础组件
|-- |-- |-- index.vue
|-- |-- |-- index.scss
|-- |-- |-- index.ts 导出所有基础组件
|-- 5、filters (vue项目)
|-- |-- a.ts 
|-- |-- index.ts 导出所有通用过滤器,在main.js入口引入
|-- 6、directives(vue项目)
|-- |-- a.ts
|-- |-- index.ts 导出所有通用指令,在main.js入口引入
|-- 7、routers 路由文件
|-- |-- a.ts
|-- |-- index.ts 入口文件
|-- 8、store vuex或redux中的全局存储数据
|-- |-- moudles
|-- |-- |-- moudle-a.ts
|-- |-- index.ts 入口文件
|-- 9、utils 这里是以utils为后缀
|-- |-- index.ts 导出所有工具方法 import { formtTime } from utils
|-- |-- a.ts 如:时间格式化工具方法集合
|-- 10、hooks 这里是以hooks为后缀 
|-- |-- index.ts 导出所有hook,引入时<import { useDept,useUser } from '@/hooks/index.ts'>
|-- |-- a.ts 
|-- 11、views/pages 视图 
|-- |-- page-a 以页面a为例,命名遵循kebab-case形式
|-- |-- |-- page-a-detail 子模块之页面详情,为了引入及使用时知道组件来源,在子模块前面加上父文件名字
|-- |-- |-- |-- com-a 子模块之详情-组件a
|-- |-- |-- |-- |-- index.scss 
|-- |-- |-- |-- |-- index.vue
|-- |-- |-- |-- com-b 子模块之详情-组件b
|-- |-- |-- |-- |-- ...
|-- |-- |-- |-- type.ts 存放详情相关的类型(可选)
|-- |-- |-- |-- index.scss 
|-- |-- |-- |-- index.vue  子模块之详情页面,一般将detail页面进行拆分组装,不做太多逻辑处理
|-- |-- |-- index.scss 
|-- |-- |-- index.vue 入口页面
|-- |-- project 模块b-同business-opportunity
|-- |-- |-- ...

以上,是笔者目前使用的项目目录了,你的项目目录是啥样的呢,如有错误,欢迎指正!