Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap #628

Closed
27 of 32 tasks
sorrycc opened this issue Jun 14, 2018 · 20 comments
Closed
27 of 32 tasks

Roadmap #628

sorrycc opened this issue Jun 14, 2018 · 20 comments

Comments

@sorrycc
Copy link
Member

sorrycc commented Jun 14, 2018

2.1

  • 完善 pwa 插件,插入 meta 信息,缓存 html 等
  • 完善 umi generate 命令, 包括覆盖 antd-pro-cli 的场景
  • 完善出错信息
  • 运行时插件

2.x

3.0

2.0 (Published)

计划 8 月底。

大图

相关

@zhoukk
Copy link

zhoukk commented Jun 14, 2018

加油

@sorrycc
Copy link
Member Author

sorrycc commented Jun 27, 2018

备份下上周周报里的内容。

花了一些时间整理 umi@2 的细化方案。

为什么要 umi@2 ?

  • webpack@4, less@3, postcss@6 等重要依赖更新,这些重要的基础设施更新势必会带来一些 break change
  • umi@1 业务债,umi@1 设计初期是为云凤蝶和 h5 应用服务的,为支持云凤蝶的发布在内部做了不少事情,以及内置了不少 h5 相关的优化,而这些并非 umi 的核心功能,并且内置的功能(比如 hd 方案)不能满足所有人的需求,也有些配置项会造成使用上的困扰,所以通过插件的方式进行扩展会比较合适
  • 默认配置、优化和插件在设计上的问题,比如 umi@1 做了很多默认优化,按需加载、按需编译、pwa、dll、hard-source-webpack-plugin 等等,这些是最佳实践,但对于初学者并不友好,从而引入了很多问题反馈,umi@2 会关闭很多默认优化,按需开启,对入门用户更友好
  • 时间上的考虑,希望能赶在 bigfish@2 正式发布前,把该升的该改的都做了

umi@2 做啥?

  • 精简内核,在明确 umi 的核心是啥之后,做这点很容易,同时考虑在之后支持 vue、rn 和 小程序
  • 改进插件体系,更多约束,明确做什么不做什么
  • 依赖更新,webpack@4 等
  • 重构静态 HTML 生成,更灵活的 HTML 生成方式,next.js 新版和 vuepress 都是如此
  • SSR,和上一个点一起做,提升静态站点(生成 HTML)时的渲染速度,以及支持 SEO
  • 配置收敛和 umi-plugin-react
  • umi ui,提供 ui 辅助项目管理、插件管理、配置管理、路由管理、dva 的 model/service/connect/selector、mock 等

更多详见 umi@2.0 milestoneumi roadmap

@sorrycc
Copy link
Member Author

sorrycc commented Jul 6, 2018

备份下上周周报里的内容。

本周有梳理 umi 的架构图,按 2.0 的规划画的,所以点暂时没有实现。其中物料市场的部分 bigfish 周会上也有讨论,我细化下自己的想法。

先设想一个具体的 user case。

  1. 接到需要,要做一个首页
  2. 看物料,觉得 https://alibaba.github.io/ice/block/excellent-home-page 不错
  3. 在 umi 项目里执行 umi page https://alibaba.github.io/ice/block/excellent-home-page,下载完成后后,访问 http://localhost:8000/excellent-home-page 能看到效果
  4. 修改细节
  5. 需求完成

一些细节的点。

  1. 约定要简单才容易做成,即任何返回 react component 的文件都可以是物料,然后不关心内部怎么组织
  2. 为什么是 umi 来做?因为 umi 的约定式路由,所以 1) 是我们实现简单,因为 pages 下的文件即路由;2) 是物料可以具备数据流能力,dva model 也可通过目录方式做约定
  3. 物料的来源?由于第一点,所以可支持 umi 官方维护的物料市场、antd-pro、github 仓库、ice
  4. umi 提供 umi page 命令来做物料的下载,上传和更新可先走 github PR

@sorrycc
Copy link
Member Author

sorrycc commented Jul 20, 2018

备份下周报里关于插件的内容。

  1. 插件本质上上就是挖坑和填坑,通常是内部实现里挖坑交给插件来填,然后插件也可以再挖坑交给其他插件来填,这样插件之间就有了依赖
  2. 如何优雅的填坑需要再好好设计下,主要是要设限,umi@1 里暴露很多底层修改的方法,容易冲突和出问题,umi@2 会取消掉,代替之的是一些设计好的高阶方法和事件
  3. 插件需要能扩展命令行,umi 的 build、dev 和 test 就是由此实现
  4. 插件需要区分编译时和运行时,目前只支持编译时,运行时也是通过编译时的方法提供,可参看 gastby 提供多种环境(编译时和运行时)的扩展
  5. 插件需要支持生成额外的文件
  6. 插件要能提供 ui 扩展能力,扩展 umi ui 提供的 ui 辅助

相关: #710

@dkvirus
Copy link

dkvirus commented Jul 23, 2018

物料市场那个功能十分期待~~飞冰也让人大开眼界。

任何返回 react component 的文件都可以是物料 ,,.......,是物料可以具备数据流能力

物料可以具备数据流能力,我可以理解为物料里可以用到 dva 吗??这个 Component 不像 antd 提供的纯组件,内部是有业务处理的。umi 怎么处理这个??还是 umi 只是将物料的代码拷贝到当前工程下面??

@ishenli
Copy link

ishenli commented Jul 23, 2018

通过 umi new 命令提供脚手架

这个类似vue-cli的一样的全局cli + 插件的generator 来做还是其他方式? 我看2.0已经有registerCommand的支持,如果都是插件的方式,那么业务线后续统一配合umi cli 来做脚手架模板

@sorrycc
Copy link
Member Author

sorrycc commented Jul 27, 2018

这个类似vue-cli的一样的全局cli+ 插件的generator 来做还是其他方式?

@ishenli cli + 插件的 generator 吧。

@zjsth92
Copy link

zjsth92 commented Jul 30, 2018

请问英文版文档有没有具体时间计划?

@sorrycc
Copy link
Member Author

sorrycc commented Aug 6, 2018

@shitianhao umi@2 发布(预计 8 月底)之后吧。

@kaoding
Copy link
Contributor

kaoding commented Aug 8, 2018

就喜欢这种每天发一个版本,撸代码就应该是这种态度。

@sorrycc
Copy link
Member Author

sorrycc commented Aug 11, 2018

备份下周报里关于支持组件开发的内容。

bigfish 周会上有讨论组件开发工具,结合大家的讨论,这里梳理下我的想法。

  • 有点类似之前的 spm doc,spm deprecated 之后还有不少同学在用 spm doc,以及日常维护 umi 和 roadhog 时,也有不少同学咨询是否支持组件开发,所以这个功能的必要性应该是没问题的
  • 组件开发应该包含本地开发、单测、发布、文档、文档发布
  • 文档可选方案有 storybookmdx,以及 mdx 的上层封装 doczx0,还可以结合 react-live 实现网页上编辑即生效,甚至可以介入 codesandboxstackblitz,还可以考虑和 riddle 打通
  • 实现上,umi 可以通过插件封装 umi storybookumi mdx 命令,然后 bigfish 选择一个实现 bigfish doc
  • 关于文档发布,umi 需提供一键发布到 gh-pages 或者 now 等平台,bigfish @水鱼 有考虑做一个 bigfish.alipay.com/components,我理解为组件市场,个人觉得还是有一定维护成本的,参考之前的 spmjs.io
  • 组件的打包在 umi 层做,基于 rollup,考虑 es modules、mjs、umd、@babel/runtime、web component 等
  • 相比组件市场,我觉得目前来说,物料市场的价值会更大,可以先投精力做物料市场

参考:

@kaoding
Copy link
Contributor

kaoding commented Aug 15, 2018

物料市场怎么一个玩法,数据流会加入吗?

@sorrycc
Copy link
Member Author

sorrycc commented Aug 17, 2018

@kaoding 会,具体方案还没定。

@tomgao365
Copy link

@sorrycc 你好,2.x版的 umi 计划支持 ReactNative 吗?现在 ReactNative 缺乏这样的解决方案

@sorrycc
Copy link
Member Author

sorrycc commented Aug 21, 2018

@tomgao365 没有,RN 不好支持,他不走 webpack,很多功能会失效。

@urrri
Copy link

urrri commented Aug 28, 2018

Babel 7 Released

@kaoding
Copy link
Contributor

kaoding commented Sep 9, 2018

怎么做物料市场,能给一个思路不?

@sorrycc sorrycc mentioned this issue Sep 11, 2018
@arvinxx
Copy link
Contributor

arvinxx commented Sep 18, 2018

@sorrycc umi 的 SSR 是否可以参考这个类 Next 框架? Serlina: 渐进式的 React 服务器渲染框架

@sorrycc
Copy link
Member Author

sorrycc commented Oct 30, 2018

#1365 继续跟进。

@sorrycc sorrycc closed this as completed Oct 30, 2018
@surgit
Copy link

surgit commented Nov 13, 2018

小程序的支持不在计划了吗?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants