Open sorrycc opened 6 years ago
距离 umi 1.0 发布 已有半年,umi 在这段时间做了大量的重构和改进,438 个 commit,20 个 beta 版本,今天正式发布 2.0 版本,并调整定位为可插拔的企业级 react 应用框架。
umi,中文可发音为乌米,是一个可插拔的企业级 react 应用框架。umi 以路由为基础的,支持类 next.js 的约定式路由,以及各种进阶的路由功能,并以此进行功能扩展,比如支持路由级的按需加载。然后配以完善的插件体系,覆盖从源码到构建产物的每个生命周期,支持各种功能扩展和业务需求,目前内外部加起来已有 50+ 的插件。
umi 是蚂蚁金服的底层前端框架,已直接或间接地服务了 600+ 应用,包括 java、node、H5 无线、离线(Hybrid)应用、纯前端 assets 应用、CMS 应用等。他已经很好地服务了我们的内部用户,同时希望他也能服务好外部用户。
他包含以下特性:
umi@1 内置了很多优化方案,比如按需编译、按需加载、eslint、pwa、antd 校验等等,这些方案能提升开发体验和运行效率,但同时也提升了入门 umi 的门槛。
所以 umi@2 默认关掉了很多优化方案:
然后把这些功能改由插件来实现,按需开启,以保证 umi 内核的轻量。同时,默认构建只产生 index.html、umi.js 和 umi.css,对新手来说部署更友好。
umi@1 的插件机制有点过于强大,什么都能做,什么都能改。所以 umi@2 重构了插件机制,做了很多约束,明确什么能做,什么不能做,并提供了一套更友好的插件 API。
同时,这套插件机制已在内部得以验证,由超过 30 个插件构成的非常优秀的内部框架 Bigfish 正在服务于蚂蚁金服,包含埋点、后端接入、性能、服务接入、权限等等。
umi@1 的插件比较散,使用时通常需要安装多个插件,升级和使用都比较麻烦,所以我们提供了 umi-plugin-react。umi-plugin-react 是插件集,类似 babel 里 preset 的概念。
目前有内置了 13 个插件,包含:
详见:https://umijs.org/zh/plugin/umi-plugin-react.html
趁 umi@2 的机会,我们把主要依赖度升级到了最新,除了 webpack@4 和 babel@7,还有 less@3、postcss@7、typescript@3 等,以及带来相关的构建性能提升。
同时,我们用了 webpack-chain 来扩展 webpack 配置,这是相比之前的 webpack.config.js 更为稳妥的方案。
webpack.config.js
比如:
export default { chainWebpack(config, { webpack }) { // 设置 alias config.resolve.alias.set('a', 'path/to/a'); // 删除进度条插件 config.plugins.delete('progress'); }, }
umi generate
umi@2 支持 umi generate(umi g) 命令快速生成文件,
umi g
$ umi g page index
同时 umi generate 是可被扩展的,比如 umi-plugin-dva 就基于此扩展了 dva:model 等文件的快速生成。
dva:model
.env
.env.local
yaml
@
入门 umi 很简单,
# 安装 $ yarn global add umi # 或者 npm install -g umi # 新建应用 $ mkdir myapp && cd myapp # 新建页面 $ umi generate page index # 本地开发 $ umi dev # 构建上线 $ umi build
详见:https://umijs.org/zh/guide/getting-started.html,也可以观看 10 分钟入门 umi 视频版。
目前,antd 社区的 antd-pro 和 antd-admin 都已升级到 umi@2,之前 umi@1 的项目可参考文档或视频进行升级。
扫码加 UMI_HELPER,回复 umi 自动加群。
UMI_HELPER
umi
感谢所有参与贡献 umi 以及在项目中使用了 umi 的内外部同学。umi 才刚刚起步,很希望你能一起来完善他,我们 Github 见!👋
前排 + 1
mark
d
^_^
666
顶顶ヾ(@^▽^@)ノ
+1
正在升级
正在用~~
适合需要做SEO的前端页面吗,还是仅适合做后台管理系统。
对里面的埋点方案想要了解,不知道哪里能看到细节吗?
距离 umi 1.0 发布 已有半年,umi 在这段时间做了大量的重构和改进,438 个 commit,20 个 beta 版本,今天正式发布 2.0 版本,并调整定位为可插拔的企业级 react 应用框架。
umi 是什么?
umi,中文可发音为乌米,是一个可插拔的企业级 react 应用框架。umi 以路由为基础的,支持类 next.js 的约定式路由,以及各种进阶的路由功能,并以此进行功能扩展,比如支持路由级的按需加载。然后配以完善的插件体系,覆盖从源码到构建产物的每个生命周期,支持各种功能扩展和业务需求,目前内外部加起来已有 50+ 的插件。
umi 是蚂蚁金服的底层前端框架,已直接或间接地服务了 600+ 应用,包括 java、node、H5 无线、离线(Hybrid)应用、纯前端 assets 应用、CMS 应用等。他已经很好地服务了我们的内部用户,同时希望他也能服务好外部用户。
他包含以下特性:
2.0 有什么改进?
轻内核 + 新手友好
umi@1 内置了很多优化方案,比如按需编译、按需加载、eslint、pwa、antd 校验等等,这些方案能提升开发体验和运行效率,但同时也提升了入门 umi 的门槛。
所以 umi@2 默认关掉了很多优化方案:
然后把这些功能改由插件来实现,按需开启,以保证 umi 内核的轻量。同时,默认构建只产生 index.html、umi.js 和 umi.css,对新手来说部署更友好。
全新的插件机制
umi@1 的插件机制有点过于强大,什么都能做,什么都能改。所以 umi@2 重构了插件机制,做了很多约束,明确什么能做,什么不能做,并提供了一套更友好的插件 API。
同时,这套插件机制已在内部得以验证,由超过 30 个插件构成的非常优秀的内部框架 Bigfish 正在服务于蚂蚁金服,包含埋点、后端接入、性能、服务接入、权限等等。
umi-plugin-react
umi@1 的插件比较散,使用时通常需要安装多个插件,升级和使用都比较麻烦,所以我们提供了 umi-plugin-react。umi-plugin-react 是插件集,类似 babel 里 preset 的概念。
目前有内置了 13 个插件,包含:
详见:https://umijs.org/zh/plugin/umi-plugin-react.html
webpack@4 + babel@7 + ...
趁 umi@2 的机会,我们把主要依赖度升级到了最新,除了 webpack@4 和 babel@7,还有 less@3、postcss@7、typescript@3 等,以及带来相关的构建性能提升。
同时,我们用了 webpack-chain 来扩展 webpack 配置,这是相比之前的
webpack.config.js
更为稳妥的方案。比如:
umi generate
umi@2 支持
umi generate
(umi g
) 命令快速生成文件,同时
umi generate
是可被扩展的,比如 umi-plugin-dva 就基于此扩展了dva:model
等文件的快速生成。其他改进
.env
和.env.local
配置环境变量yaml
格式的注释扩展路由信息@
,指向 src 目录快速上手
入门 umi 很简单,
详见:https://umijs.org/zh/guide/getting-started.html,也可以观看 10 分钟入门 umi 视频版。
升级到 umi@2
目前,antd 社区的 antd-pro 和 antd-admin 都已升级到 umi@2,之前 umi@1 的项目可参考文档或视频进行升级。
社区
钉钉群
微信群
扫码加
UMI_HELPER
,回复umi
自动加群。最后
感谢所有参与贡献 umi 以及在项目中使用了 umi 的内外部同学。umi 才刚刚起步,很希望你能一起来完善他,我们 Github 见!👋