Skip to content
This repository has been archived by the owner on Aug 9, 2022. It is now read-only.

v4.0.0-rc.9

Pre-release
Pre-release
Compare
Choose a tag to compare
@sorrycc sorrycc released this 24 Mar 08:24
· 489 commits to master since this release

1、@umijs/max 的命令行从 umimax 更换为 max

# before
$ umimax

# after
$ max

2、umi cli 启动提速,从 5s+ 到 1s+

3、完善 mfsu,修复 hmr 不生效问题,以下是笔记

mfsu 模式下默认关闭了 fast refresh,因为有些兼容问题,原因未知,所以走的是 webpack 的 hmr https://github.com/umijs/umi-next/blob/9c8dc239ea05d03bcfc06b440e623cb020b7d26c/packages/bundler-webpack/src/config/fastRefreshPlugin.ts#L20

bundler-webpack/client/client/client.js 负责热更操作,之前这个文件也是被 mfsu 匹配的,但是里面包含 module.hot 的判断,打包之后会被写死为 false,导致 hmr 失效,始终走页面刷新,https://github.com/umijs/umi-next/blob/9c637aef5279c80f56155710f6bf45452158a6bf/packages/bundler-webpack/src/client/client.ts#L173

解法是让这个文件不走 mfsu 预编译,而是和项目文件一起打包。

4、完善 mfsu,修复一些边界场景报错之后的恢复问题,同时调整了日志,DX 会更好一些,应该不再需要手动删除 node_modules/.cache 的缓存文件

5、新增 mfsu.chainWebpack 配置

mfsu: {
  chainWebpack(memo) { memo.resolve.alias.set('foo', 'bar') }
}

chainWebpack 配置不会对 mfsu 场景下有效,所以新增 mfsu.chainWebpack 专门针对 mfsu 的 webpack 配置进行调整。

6、完善 mfsu,修复 app.ts 里无 export 内容时报错的问题

开启 mfsu 时,如果文件无 export 信息,会默认增加一个 export const __mfsu = 1,但最近测试时发现不需要了,原因应该是之前调整了 mfsu 的入口实现,webpack 会自动处理这个场景。解法是删除相应的 babel 插件,黑科技又少一个。

7、完善 access 插件,新增 Access 导出,同时支持路由通过 access 属性设置权限

import { Access } from 'umi';
routes: [
  { path: '/users', access: 'manager' }
]

8、umi 新增 verify-commit 命令,推荐打开 husky 使用

$ umi verify-commit

如果需要支持 emoji 前缀,可通过配置实现,

verifyCommit: {
  allowEmoji: true,
}

9、appData 新增 locale 信息,插件开发者可基于此分别输出中文和英文日志

10、proxy 中间件新增 x-real-url 属性,便于问题排查

11、修复 mock 文件不支持 cjs 的问题

12、修复使用 yarn 安装 umi 会失败的问题

13、支持 Umi 3 的多环境配置

$ UMI_ENV=cloud umi dev