目录结构

应用目录结构

为了规范应用的架构和代码质量,smallfish 在框架中大量使用了约定替代代码书写。下面文件夹或者文件注释中包含 * 说明是约定的目录或者文件。

.
├── config                 // * 应用配置文件夹
│   ├── config.js          // * 应用配置,可配置接口代理,路由,配置开关等
│   └── plugin.js          // * 自定义的 smallfish 插件目录
├── mock                   // * mock 数据存放的文件夹
│   └── *.js               // * 本地模拟数据
├── src                    // 业务代码目录
│   ├── component          // 通用组件,可以通过 '@/component' 别名访问
│   ├── model              // dva model(dva 配置开启时生效)
│   ├── service            // 请求 service,可以通过 '@/service' 别名访问
│   ├── util               // 工具库,可以通过 '@/util' 别名访问
│   ├── layout             // 布局组件,可以通过 '@/layout' 别名访问
│   ├── i18n               // * 国际化相关数据
│   |   ├── zh-CN.json     // * 单个语言的国际化数据
│   |   ├── *.js           // * 单个语言的国际化数据
│   |   └── index.json     // * 国际化语言数据入口文件
│   └── page               // * 页面,下面的页面可以是文件夹,也可以是一个 JS 页面组件
│       ├── .umi           // smallfish 生成的临时文件夹,不需要提交
│       └── *              // 其它页面组件代码,具体参考下方的页面组件结构
├── test                   // * 测试样例存放文件夹
│   └── *.test.js          // * 单元测试文件,需要遵循 *.test.js 的命名规范
├── .eslintignore          // * 配置需要忽略 eslint 代码检测的文件(不需要更改)
├── .eslintrc              // * 自定义的 eslint 规则(不需要更改)
├── .stylelintrc           // * 自定义的 stylelint 规则(不需要更改)
├── .gitignore             // * 配置需要 git 忽略提交和修改的文件
├── jsconfig.json          // VSCode 的 JS 项目配置
├── .editorconfig          // 编辑器代码风格配置,适用于大部分编辑器
└── package.json           // * 应用依赖等信息配置

页面目录结构

- page
  └── [SomePage]
    ├── component          // 如果页面比较复杂,可以拆分为更多组件
    ├── index.js           // * 页面组件入口文件
    ├── style.less         // 样式
    ├── model.js           // * 页面 model,会被默认挂载,注意需要有全局唯一的 namespace(dva 配置开启时生效)
    ├── model              // * 有多个 model 的时候可以新建一个文件夹替代 model.js(dva 配置开启时生效)
    │   └── [modelname].js // * 页面 model,会被默认挂载,注意需要有全局唯一的 namespace
    └── service.js         // 页面自有的 service