在文件和目錄的組織上,umi 更傾向于選擇約定的方式。
一個(gè)復(fù)雜應(yīng)用的目錄結(jié)構(gòu)如下:
.
├── dist/ // 默認(rèn)的 build 輸出目錄
├── mock/ // mock 文件所在目錄,基于 express
├── config/
├── config.js // umi 配置,同 .umirc.js,二選一
└── src/ // 源碼目錄,可選
├── layouts/index.js // 全局布局
├── pages/ // 頁面目錄,里面的文件即路由
├── .umi/ // dev 臨時(shí)目錄,需添加到 .gitignore
├── .umi-production/ // build 臨時(shí)目錄,會(huì)自動(dòng)刪除
├── document.ejs // HTML 模板
├── 404.js // 404 頁面
├── page1.js // 頁面 1,任意命名,導(dǎo)出 react 組件
├── page1.test.js // 用例文件,umi test 會(huì)匹配所有 .test.js 和 .e2e.js 結(jié)尾的文件
└── page2.js // 頁面 2,任意命名
├── global.css // 約定的全局樣式文件,自動(dòng)引入,也可以用 global.less
├── global.js // 可以在這里加入 polyfill
├── app.js // 運(yùn)行時(shí)配置文件
├── .umirc.js // umi 配置,同 config/config.js,二選一
├── .env // 環(huán)境變量
└── package.json