umi-next icon indicating copy to clipboard operation
umi-next copied to clipboard

Umi 4 deps pre-bundle plan

Open PeachScript opened this issue 4 years ago • 0 comments

记录一下 Umi 4 依赖预打包的进展和阻碍;注意,该列表不包含 rc.6 前已经预打包成功的模块

  • [ ] css-loader
    • 状态:❌ 无法预打包
    • 依赖:bundler-webpack
    • 备注:源码中含有 产物路径动态引入,目前的预打包方案不支持部分产物 exclude
  • [ ] postcss
    • 状态:❌ 无法预打包
    • 依赖:bundler-esbuild、bundler-vite、bundler-webpack
    • 备注:css-loader 依赖 postcss,所以在无法预打包 css-loader 的情况下,预打包 postcss 也没有意义
  • [ ] @vitejs/plugin-react
    • 状态:🚧 进行中 #673
    • 依赖:bundler-vite
    • 备注:源码用了动态 import,子依赖没法打包,只能用后置脚本替换产物路径指向 bundler-utils
  • [ ] postcss-preset-env
    • 状态:🚥 暂不处理
    • 依赖:bundler-esbuild、bundler-vite、bundler-webpack
    • 备注:依赖比较复杂,内层还依赖了 autoprefixer、browserlist、caniuselite 等其他 Umi 子包也依赖的包,要发挥出最好的预打包效果就得全部提到顶层单独处理,成本比较高,所以暂不做处理
  • [ ] @svgr/core
    • 状态:🚧 进行中
    • 依赖:bundler-vite、bundler-webpack
    • 备注:types 的类型声明路径有问题暂时会打包失败,已提 PR https://github.com/gregberge/svgr/pull/693 等上游发版
  • [x] less
    • 状态:✅ 已完成 #490
    • 依赖:bundler-esbuild、bundler-vite、bundler-webpack
    • 备注:由于 bundler-vite 无法和 less-loader 一样指定编译器路径,所以只能添加后置脚本确保 node_modules/less 指向 bundler-utils
  • [x] express
    • 状态:✅ 已完成 #490
    • 依赖:bundler-vite、bundler-webpack、@umijs/server、@umijs/mfsu

PeachScript avatar Mar 14 '22 09:03 PeachScript