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 for 2.x #1365

Closed
12 of 31 tasks
sorrycc opened this issue Oct 30, 2018 · 25 comments
Closed
12 of 31 tasks

Roadmap for 2.x #1365

sorrycc opened this issue Oct 30, 2018 · 25 comments

Comments

@sorrycc
Copy link
Member

sorrycc commented Oct 30, 2018

2.x

Big Features

dev/build 提速

  • 提供 umi-plugin-externals,除了配置 webpack 的 externals
  • 考虑 noParseuglifyjs 的 exclude 等,使 umi 的 build/dev 速度上一个台阶
  • 把 1.x 的按需编译加回来,对于一些极庞大业务会有用,比如语雀和云凤蝶
  • 支持 tree-shaking,一直以为是支持的。。support tree shaking #1364

部署和使用场景

路由

性能

  • 支持 Prefetch

dva

  • 支持配置 option.disableModelDynamicImport,允许开了 dynamicImport 时也全量加载 model,避免 dev 和 prod model 加载不一致的问题
  • 改造 model 加载方式,dva 的 model 等处理成 route 上的配置,便于运行时扩展

Misc

  • 支持 config.cssPublicPath 配置,对应 extract-text-webpack-plugin 的 publicPath 配置,解决比如 求助求助,项目打包后静态资源文件路径配置问题 #1357 的问题,feat: support config.cssPublicPath #1409
  • 通过 umi-plugin-storybook 整合 storybook,通过 umi storybook 启动
  • 完善 umi generate,目前只有 umi g page
  • [ ] 默认内置埋点,捕获使用率、命令行出错、umi dev 出错等,分级,比如 log 和 error,允许关闭,区分是否阿里内部用户
  • 提供 umi-plugin-eslint,把 1.x 的 eslint 校验加回来,请问在umi中如何增加eslint-loader实现代码动态检测? #1371 (comment)
  • 支持在 page 下写 mock,这样 mock、model、route 就可以自成一体,比如 mock 解析时包含所有 src/pages/**/__mock__/*.js
  • 进一步完善 pnp支持,比如 dll 支持 pnp,让 ant-design-pro 可以用 pnp 跑,create-umi 通过 --pnp 支持
  • node_modules 考虑走 babel transform,然后 @babel/preset-env 的 polyfill 用 usage,可进一步减少尺寸,同时完美地解决 node_modules es6 代码的 uglifyjs 问题
  • 和 react hooks 的结合,比如 useRouter
  • umi serve,serve dist/ 下的静态文件,但包含 mock 功能
  • 锁定全部三方依赖版本,定期升级
  • umi-plugin-nprogress
  • 针对 ant-design-pro 的场景,试验全量打包和秒开提速。群里有讨论如何为打包提速,webpack 作为通用方案能提的其实已经有限,由于 babel 和 uglifyjs 的存在,不太可能有质变。但针对一些垂直场景还是可以探索一下的,比如 antd-pro、h5 等。比如 antd-pro,可以考虑全量打包依赖,然后用 systemjs 处理项目文件,小程序那边已实现,可以结合考虑一下,最佳情况可以实现秒开,但限制也比较明显。
  • create-umi 支持 typescript
  • 更智能的 css modules 支持方式,import './a.css' 不走 css modules,import styles from './a.css' 走 css modules,通用 css modules 方案 #1417
  • 升级 uglifyjs-webpack-plugin 到 2

3.x

有 break-change 的改动放这里,无实际开发计划。

  • 配置文件 (.umirc.js, config/config.js) 里寻找路径有点混乱,比如 route component 是从 page 开始找的,又比如 theme 字符串是从根目录开始找的

持续做

  • 文档完善
  • 完成视频教程
  • 用例补充

参考

@sorrycc sorrycc mentioned this issue Oct 30, 2018
32 tasks
@xiaohuoni
Copy link
Member

关注

@xiaoxiangmoe
Copy link
Contributor

umi component 的一个目的是支持 monorepo 开发吗?

.
├── README.md
├── lerna.json
├── package.json
├── packages
│   └── @myscope
│       ├── my-app-components  # 使用 umi component 编译
│       ├── other-libs         # 自己配置 rollup 编译
│       └── my-app             # 使用 umi 编译,业务强耦合的代码
└── yarn.lock

其中业务强耦合的代码放在 my-app-component ,使用 umi component 编译。
与业务脱耦合的可复用的组件/代码等,放在 my-app-componentsother-libs ,甚至可以单独发布。
也可以引入一些物料市场内的库,直接放在 @myscope 目录下,稍作修改被其余库引入。

@xiaoxiangmoe
Copy link
Contributor

xiaoxiangmoe commented Oct 31, 2018

顺便提一下,umi component 是不是可以改成 umi library 啊,因为非组件的库,比如 hooks 之类的,还有其余的一些很纯粹的工具函数库,也可以用它打包。

我们目前可以考虑使用 https://github.com/developit/microbundle

@Leonard-Li777
Copy link

Leonard-Li777 commented Oct 31, 2018

希望能增加是否使用内置antd的选项,有的项目是用的antd2.x。

另外感觉即使开启了modules: false , antd的tree-shaking还是没生效

@xfields
Copy link

xfields commented Nov 2, 2018

sorrycc/todos#238 这个链接 404 了

@devmsg
Copy link

devmsg commented Nov 9, 2018

关注

@denggy
Copy link

denggy commented Nov 12, 2018

1.既然umi是内置dva的 那么dva原生的方法 是否应该暴露出来 (包括dva生命周期是否可以覆盖)
2.目前umi 的 2.2版本 在路由和layout上感觉还是有些单一( 比如不支持动态插入路由 还有默认的路由约定感觉很鸡肋 因为没有和layout关联起来)
不过在总体思路和编辑速度上比pro1.x 的roadhog那版强太多了 期待 @sorrycc 继续发力

@shengbeiniao
Copy link

shengbeiniao commented Nov 15, 2018

目前UMI的目录是约束的,不适合monorepo开发,例如yarn的workspace,或者官方能提供示例

@xiaohuoni
Copy link
Member

Misc

@JevonYang
Copy link

请问,以后版本中考虑支持小程序(微信/支付宝/百度)么?

@0xZXDX
Copy link

0xZXDX commented Dec 18, 2018

SSR急需,希望可以支持

@sorrycc sorrycc pinned this issue Dec 19, 2018
@ybning
Copy link

ybning commented Dec 20, 2018

SSR +1

@ghost
Copy link

ghost commented Dec 26, 2018

Tree shaking +1

@ghost
Copy link

ghost commented Feb 5, 2019

  • SSR +1

@murrayee
Copy link

期待useEverything

@ManuRodgers
Copy link

SSR+1

2 similar comments
@huangshunping
Copy link

SSR+1

@Jeepeng
Copy link

Jeepeng commented Apr 26, 2019

SSR+1

@liresky
Copy link

liresky commented May 16, 2019

什么时候能把那些旧的不维护的依赖包升级上一部分,现在看着都不敢用猛用啊,怕冲突

@sorrycc
Copy link
Member Author

sorrycc commented May 16, 2019

@liresky 那些包?

@leohxj
Copy link

leohxj commented Jun 18, 2019

物料和组件的概念是如何定义的?他们的粒度和关系是如何的?

这里提到的物料就是 umi block 吧, 简单的理解它就是可复用的代码块吧?
组件是否就是构成 block 的元素?它和 umi 可以没有关系吧。

@xiaohuoni
Copy link
Member

@stale
Copy link

stale bot commented Sep 10, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix label Sep 10, 2019
@xiaohuoni xiaohuoni removed the wontfix label Sep 11, 2019
@stale
Copy link

stale bot commented Nov 10, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added wontfix and removed wontfix labels Nov 10, 2019
@stale
Copy link

stale bot commented Jan 9, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added wontfix and removed wontfix labels Jan 9, 2020
@afc163 afc163 unpinned this issue Mar 3, 2020
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