最近整理了很多项目,发现不同的team代码组织风格迥异,第一感觉就是项目的目录结构。本人结合各个项目组的不同需求和命名特点, 总结了此结构,为同行师兄弟们初建react项目参考。
|- public // index.html 以及一些静态文件 |- scripts // 存放build,deploy以及其他相关脚本 |- dist | build // build后文件存放目录,通常加入.gitignore |- coverage // UT报告存放目录,,通常加入.gitignore |- src // 代码主目录 |- __mocks__ // 存放mock数据用以调试以及UT |- assets // 资源文件, 包含style sheet,images,fonts,etc |- components // 存放项目组件,通常又细分为common目录各个page目录 |- ComponentA // ComponentA |- tests // 存放UTs |- ComponentA.tsx // 组件主文件 |- index.ts ... |- constants // 存放常量 |- contexts // 存放contexts |- hooks // 存放hooks |- routes // 存放路由配置 |- services // 通常存放httpClient,api call相关文件 |- types // 存放类型定义 |- utils // 存放工具函数,通常是纯函数 |- views | pages // 存放页面文件 |- App.ts | main.ts ... |- .env |- .env.development |- .env.production ... |- .eslintrc |- .prettierrc |- package.json |- tsconfig.json |- README.md ...
目录根据项目技术选型和业务需求会有不同组织方式,比如Lerna项目。
总之,无论如何,合理的目录结构,优秀的文件拆分,优秀的代码解耦,高可测试的代码组织,会给项目的可维护性和稳定性,避免形成屎山,带来积极效果。