site logo

Marico' space

一个经典的react项目目录结构

前端技术 2024-08-13 22:08:51 470

最近整理了很多项目,发现不同的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项目。

总之,无论如何,合理的目录结构,优秀的文件拆分,优秀的代码解耦,高可测试的代码组织,会给项目的可维护性和稳定性,避免形成屎山,带来积极效果。