默认方案
umi@2 默认对新手友好,所以默认不做按需加载处理,umi build 后输出 index.html、umi.js 和 umi.css 三个文件。
不输出 html 文件
某些场景 html 文件交给后端输出,前端构建并不需要输出 html 文件,可配置环境变量 HTML=none 实现。
$ HTML=none umi build
部署 html 到非根目录
经常有同学问这个问题:
为什么我本地开发是好的,部署后就没反应了,而且没有报错?
没有报错! 这是应用部署在非根路径的典型现象。为啥会有这个问题?因为路由没有匹配上,比如你把应用部署在 /xxx/ 下,然后访问 /xxx/hello,而代码里匹配的是 /hello,那就匹配不上了,而又没有定义 fallback 的路由,比如 404,那就会显示空白页。
怎么解决?
可通过配置 base 解决。
export default {
base: '/path/to/your/app/root',
};
使用 hashHistory
可通过配置 history 为 hash 为解决。
export default {
history: 'hash',
};
按需加载
要实现按需加载,需装载 umi-plugin-react 插件并配置 dynamicImport。
export default {