umijs/umi

Roadmap 2023

Open

#10423 opened on Feb 6, 2023

View on GitHub
 (0 comments) (17 reactions) (0 assignees)TypeScript (14,588 stars) (2,626 forks)batch import
help wanted

Description

  • Inbox
    • (Umi UI)Next Route Visualizer,路由可视化,Umi UI 可以参考下
    • (Feature)phantomDependency 检测支持 monorepo
    • (Feature)Umi 打磨 client loader
    • (Feature)Umi 打磨 auto import,基于 prepare
    • (Feature)Umi 解懒加载(await import)请求瀑布的问题,和路由结合
    • (Feature)Umi 完善 config set 功能
    • (Feature)改进 Umi 的类型提示,参考 Nuxt
    • (Feature)Umi 添加 plugins 这个操作可以进一步简化,1)只要在 plugins 里添加模块,依赖部分可以自动安装,2)内置插件快速添加,无需加 @umijs/plugins/dist 前缀,3)支持函数。
    • (Feature)新增一个功能,比如代码里检测到 styled 时,自动增加相应的 import 语句,不知能否做成 prettier 规则
    • (Feature)需要为最佳实践调整下 umi g 的内容,1)不能生成 less 文件了,2)包含更多现有最佳实践的 g 。
    • (Feature)@umijs/testing 支持生成 vitest 配置:相比于 jest,vitest 对 pure esm 的支持更好,且速度更快 from @PeachScript
    • (Father)Father 改进 dev 速度,通过记录上次启动的 commit 信息,结合 git log,如果某个 package 没有变更,则不执行,只监听 @PeachScript
    • legacy 配置项可以集成 antd v5 的旧版浏览器兼容能力以降低用户成本?需要额外注入 runtime plugin:https://ant.design/docs/react/compatible-style-cn#css-%E9%80%BB%E8%BE%91%E5%B1%9E%E6%80%A7
    • 恢复 umi clear 命令,用于清空所有临时文件、缓存等,快速恢复到 install 后的初始状态
    • (Father)Father 应该要支持 package.json exports RFC @PeachScript
    • (Father)Father 支持 pure esm? RFC @PeachScript
    • (构建提速)MFSU option diff 可以考虑用 GitHub - sindresorhus/hash-obj: Get the hash of an object
    • (构建提速)MFSU 增加 sourcemap 的能力, 现在开启 mfsu 后三方报错 调试困难 from @xierenyuan
    • (构建提速)Turbopack 跑一遍自定义流程
    • logger 支持自定义路径,比如用于 doctor 场景
    • ssr 的 dev middleware 与原生 dev 不一致,比如 modifyHTML 无法生效之类的
    • 关于如何从 tsx 中解析出 import?感觉有几个解法,1)FORK 一份 es-module-lexer 做 tsx 的支持,2)ast-grep
    • 参考 Bigfish Checker 做 Umi Checker,用于发布前跑开源三方应用的构建,比如 antd 官网
    • Bigfish 交互式课程和 Dumi 应该都会用到 Button | Mantine 这动图修改 props 的能力
    • 学习下 Next.js 的错误提示框
    • (工程化)Umi 的 dev 和 build 去掉 turborepo 缓存,把 father 的缓存利用好就够了
      • Father 用 ora 优化 monorepo 的 dev 进度展示
      • Father 文件 dev 命中缓存时不需要做 dts 构建
    • (工程化)Umi Changelog 实现之前有整理过思路的,参考 changelog · Issue #9185 · umijs/umi · GitHub
    • (文档)Umi 和 Bigfish 的文档优化(大工程)
      • 文档内容,增加 Live Example,尤其是第三方的 API,一站式的看了 Umi 文档就会用了,不需要再跳转源文档从头学习(why:营造一种 Umi 让我变强了个感觉 ) from @stormslowly
      • 定个文档的规范的草案出来,比如 umi 和 Umi from @stormslowly
    • (文档)Umi 中文到英文翻译脚本,diff 精确到行 @sorrycc
    • (文档)搞个 umijs/.github,参考 GitHub - mswjs/.github: Mock Service Worker organization GitHub files. https://github.com/umijs/.github
    • (文档)参考 astro.new 优化 umi 的项目创建页
    • (文档)借鉴下 Press | Astro,右键 Logo 跳转
    • (最佳实践)Icon 要不要支持 children,显示在 svg 的旁边
    • (最佳实践)改进 Umi 的 Icon 方案,Icon 默认宽高用 1rem?结合 antd button 的场景
    • Umi 要加「Circular Dependency Plugin」吗?
    • 调研 Linear,看是否适合 Umi 团队
      • 一个团队协作工具,Free 版有 250 issue(不算 archive 的)的限制,无 Member 数量限制。
    • 给 Umi 的 dead file 加上可视化分析界面,参考 GitHub - M-Izadmehr/deadfile: Simple util to find unused files in any JavaScript project (ES5, ES6, React, Vue, ...)
  • W13 (0327 - 0331)
    • 升级 umi 依赖,每四周升一遍 W(Nx4+1) @sorrycc
  • W12 (0320 - 0324)
    • 组件研发最佳实践规则编码完成 @PeachScript
    • prepare 的 build 支持分析出 import 数据,补充到 api.appData.imports,以文件为 key @stormslowly 4h
    • 集成 webpack-inspector @岁贤
    • techui 的 sideEffects 配置问题 @PeachScript
    • react externals 会导致 hmr 失效的问题 @stormslowly
    • 产出最佳实践之 Mock 方案 @sorrycc 8h
    • 完成 Umi 答疑机器人 @sorrycc 4h
  • W11 (0313 - 0317)
    • 查漏补缺周。

    • Umi UI 研发(3) @goo-yyh 8h
    • Umi/Bigfish (也许在api)添加一些 error 勾子,onError、onServiceError、onCompilingError 等,可以做一些错误引导或反馈等统一处理 @sorrycc 1h
    • Bigfish 在 dev 和 build 报错时增加引导用户使用 doctor + links(依赖上一条任务) @hanzebang
    • (新人任务)Bigfish Reporter @行见
    • (新人任务)Umi 仓库的 changelog 命令 @禾承
  • W10 (0306 - 0310)
    • (Feature)Umi 支持使用 zod 作为配置校验和类型生成工具
    • 组件研发最佳实践文档知识库完成 @PeachScript
    • father 缓存问题,tsconfig.json 里配了 declaration 不生效,需要删除 node_modules/.cache 才行 @PeachScript
    • 源码交付方案 @PeachScript(1)
    • Bigfish x 空项目、Bigfish x TERN、源码交付,这两个的规划和里程碑 @PeachScript
    • 新增「LinkS 指南」文档,关于「怎么提问」「答疑边界」「话术列表」等 @PeachScript
      • 整理需要出话术的场景列表 @hanzebang
    • Bigfish 数据统计、Umi 和 Bigfish 文档、Bigfish x 业务的「支付宝官网、支付宝收银台」、Bigfish 应用治理,这四个的规划和里程碑 @stormslowly
    • Umi UI 研发(2) @goo-yyh 8h
    • Bigfish 仓库 examples 下的对 @alipay/bigfish 的声明改用 workspace:*,同时改下强约束规则,遇到 package.json 中 name 是以 @examples/ 开头的不做检测 @hanzebang
    • (新人任务)完善 umi g page,检测到 api.config 里有 styledComponents 之后,用 styled-components 的方式生成文件,不生成 less 文件 @岁贤
    • (新人任务)Umi did-you-know 的渲染方式更游戏化一些,应该可以优化,现在只有随机,比如出现过的可以降低出现频率等等 @折牧
    • (新人任务)解决开启 https 后多刷几次会报「ERR_HTTP2_PROTOCOL_ERROR」的问题 @仝守玉
  • W09 (0227 - 0303)
    • Bigfish 数据方案,包括 dev、build、hmr 等 @stormslowly
    • Bug:MFSU x Valtio 报错 · Issue #10560 · umijs/umi · GitHub @stormslowly
    • (Feature)umi deadCode 命令,独立的 deadCode 检测命令 from @goo-yyh 4h
      • 借助这个工具 umi-plugin-circular-check 里的实现思路,是可以拿到项目所有引用文件的列表,扫一下 src 的文件,剩下的就是未使用的 from @YingCI
    • Umi UI 研发(1) @goo-yyh 8h
    • Bigfish 课程组件和 Hooks 完善 @wyy0512
    • 升级 umi 依赖,每四周升一遍 W(Nx4+1) @sorrycc 2h
    • 调研 RSPack 8h @sorrycc 4h
    • Bigfish 课程(1) @sorrycc 4h
    • 为 Umi 建立 Telegram 交流群 @sorrycc 10m
  • W08 (0220 - 0224)
    • Bigfish 组件最佳实践(2)6x/19 @PeachScript
    • Bigfish 课程组件研发 Directory Tree、Code Playground、Quiz、Summry Video @wyy0512
    • (构建提速)MFSU V5 规划和里程碑 @stormslowly 8h
    • (构建提速)MFSU 的依赖收集改用 prepare 的构建结果 @stormslowly 8h
    • (构建提速)用 SharedArrayBuffer - JavaScript | MDN 改进 MFSU 实现,他允许从多个不同的worker同时访问一个内存块 @stormslowly
    • 优化 Icons 方案,支持 includes 配置 @stormslowly 2h
    • Icons 方案支持类型提示 @sorrycc
    • Father Doctor 感觉可以和雨燕门禁做结合,或者可以考虑做成云服务 @PeachScript
      • 进展?(1个月后)
    • (Bug)prepare 没有覆盖通过 umi > exports > plugin-xxx/index.ts 链路引入的文件 @YingCI 2h
    • 分布式 Bigfish Checker,利用好 cloud ide @sorrycc 2h
    • 跟进构建回放的功能实现情况 @sorrycc
    • 调研 Backery @hanzebang 8h
    • 调研 nuxt devtools @sorrycc 2h [[262 - 《Nuxt Devtool、Umi UI》]]
  • W07 (0213 - 0217)
    • 最佳实践文档 @stormslowly @辟殊 8/8
    • 新增 umi mfsu build 命令 @stormslowly 2h
    • Bigfish Doctor 发布 @hanzebang
      • 完善和打磨规则、reporter 等 8h
      • 计划周四发布,需准备发布稿,发到 Bigfish Blog 4h
      • did-you-know 里增加一条对 Bigfish Doctor 的推广 10m
    • 最佳实践 2023.2 发布 @sorrycc
      • 计划周四发布,需准备发布稿,发到 Bigfish Blog 4h
      • 50%
    • 优化 Icons 方案,前置依赖安装 @stormslowly
      • 可以评估下要不要做,@txp1035 已有 PR,在 iconify 调用处做的
    • Bigfish 脚手架产物尺寸分析(据说 gzip 前 500K) @PeachScript 4h
    • less + css modules > styled-components 的自动化工具 @txp1035 8h
    • 排查 Bigfish、Max 和 Umi 的启动时间并提升 @goo-yyh 8h
      • Max:在 examples/max 目录,执行 npm run setup --profile-plugins --profile-plugins-verbose,优化性能大头的插件的 register 时间(DL:2023.2.10)
      • Umi 插件:手动建立项目,开启 @umijs/plugins 下的各种插件,执行 setup 命令加 --profile-plugins --profile-plugins-verbose,优化性能大头的插件的 register 时间(DL:2023.2.10)
      • Bigfish:找个 Bigfish 脚手架,执行 setup 命令加 --profile-plugins --profile-plugins-verbose 参数,优化性能大头的插件的 register 时间(DL:2023.2.17)
      • 优化方式参考 feat(preset-umi): improve umi launch time by sorrycc · Pull Request #10361 · umijs/umi · GitHub
    • (Bug)overrides.less 删除后没有监听重新生成临时文件 @wyy0512
    • Bigfish 组件最佳实践(1) 3/19 @PeachScript来
  • W06 (0206 - 0210)
    • (Feature)写个插件「confetti」,在 dev/build 时 confetti,参考 https://twitter.com/dqhieu/status/1615993212098981889 @goo-yyh(DL:2023.2.7)
      • 在 umi 仓库的 packages/plugins 下新增 confetti 插件,配置开启、无 raycast 应用报错(如果能不依赖 raycast 更好)、dev 和 build 成功时调用(dev 只有第一次时调)、不阻塞流程
    • 最佳实践文档 @stormslowly @sorrycc 7/8
    • father dev + webstorm refactor 监听不到非当前文件的改动 · Issue #572 · umijs/father · GitHub @PeachScript
    • pnpm 跑 father dev ⌃+C 退出时报错 · Issue #573 · umijs/father · GitHub @PeachScript
    • babel-plugin-import 更换构建工具为 father @PeachScript
    • Bigfish 更换构建工具为 father @PeachScript
    • Umi PR 合并后自动邀请入 Contributor 群 1h @txp1035
    • Umi 中不允许代码引用 mock 文件夹下的文件 1h @hanzebang
    • 修复 umi g tailwindcss 没有变更配置的问题 @goo-yyh
    • 让 Bigfish 监控重新跑起来 2h @sorrycc
    • Bigfish 的 Changelog 需要处理下 @sorrycc @wyy0512
    • Bigfish Tern 脚手架,PR 待 Review @hanzebang
    • Bigfish Doctor 实现 9+ 规则 @hanzebang
    • 定时同步[[下周 Umi 和 Bigfish 迭代]]到 Github ISSUE,并声明「本地同步,请勿在 Github 上修改该内容」 @sorrycc
      • 搞定后可以提成一个脚本,支持配置映射表
  • W05 (0130 - 0203)
    • 更新一把「did you know」 @sorrycc
    • Umi 支持统计每个插件每个 Hook 的耗时 @sorrycc
    • Bigfish 增加 dayjs utils,同时对 moment 对 deprecate 处理(完成后反馈给余化)
    • phantomDependency 改用 icons 的方式做检测
  • W04
  • W03
    • <Link to={} /> 的值为 undefined 时应该做兼容
    • 最佳实践 验证 styled-components 插件的问题,之前没跑起来过 10m
    • 最佳实践 styled-components 的 globalStyle 可以通过 app.ts 里用 export const globalStyle = '' 来解,但需要看下是否会有一些 edge case
    • 最佳实践 新增 styledComponets 相关文档
  • W02
    • 最佳实践之 Icons 方案
    • 最佳实践之请求方案
    • 升级 umi 依赖,每四周升一遍吧 W(Nx4+1)
      • babel、webpack 等

Contributor guide