Umi 3.1,支持 mpa,编译大幅提速,两种 node_modules 编译方式,优化 defineConfig 的 TypeScrip...

栏目: IT技术 · 发布时间: 4年前

内容简介:不寒暄了,经过一周的开发,我们增加和改进了以下功能。通过一个自定义的 Umi 渲染器mpa 由于不会引入 react-router 和 history,一个简单的 mpa 应用尺寸可以控制地很小。试了下 mpa + preact + 禁用 polyfill 的组合,产物只有 18 Kb(gzipped)。

不寒暄了,经过一周的开发,我们增加和改进了以下功能。

支持 mpa

通过一个自定义的 Umi 渲染器 renderer-mpa 实现 mpa 的支持,复用现有的路由配置和绝大部分能力,每个页面需要有一个 React 组件出口。不是传统意义上的 mpa,但 React 应用的场景下够用。

mpa 由于不会引入 react-router 和 history,一个简单的 mpa 应用尺寸可以控制地很小。试了下 mpa + preact + 禁用 polyfill 的组合,产物只有 18 Kb(gzipped)。

Umi 3.1,支持 mpa,编译大幅提速,两种 node_modules 编译方式,优化 defineConfig 的 TypeScrip...

构成如下,

Umi 3.1,支持 mpa,编译大幅提速,两种 node_modules 编译方式,优化 defineConfig 的 TypeScrip...

详见 mpa 配置

编译提速

把 Umi 3 增加的时间降回来,而且降地更多一些。

分别试了下最简项目和 antdpro 项目,最简项目无缓存编译从 7s 到 2s,antdpro 初始项目无缓存编译从 48s 到 27s。

Umi 3.1,支持 mpa,编译大幅提速,两种 node_modules 编译方式,优化 defineConfig 的 TypeScrip...

背后我们做了几件事,

  1. 允许用户配置不编译 node_modules 依赖(视依赖不同可能减少 30% - 60%)
  2. 把处理热更新和错误渲染的 webpack-hot-dev-client 提前打包(减少 2-3 秒)
  3. 允许用户配置在 dev 时 external react、react-dom 等(减少 2-3 秒)
  4. 允许用户一键切换到 preact(减少 2-3 秒)
  5. 允许用户配置在 dev 时不开启补丁(减少 2-3 秒)

两种 node_modules 编译方式

node_modules 到底走不走 babel 编译?是个很纠结的问题。Umi 3 时参考 create-react-app 的实践引入了全量编译,但引发了不少编译速度和 OOM 问题。

所以,我们把 Umi 2 时不编译 node_modules 的方式也加了回来,供大家选择。

两种方式,

  1. 全量编译,但不编译某些依赖
  2. 不编译,但只编译某些依赖, es5-imcompatible-versions 下声明过的始终编译

详见 nodeModulesTransform 配置文档

优化 defineConfig 的 TypeScript 体验,支持插件配置

之前的 defineConfig 只支持内置的配置项,现在通过把 joi 的 schema 定义自动转为 ts 定义的方式,支持了插件的配置项的 TS 提示和校验。

Umi 3.1,支持 mpa,编译大幅提速,两种 node_modules 编译方式,优化 defineConfig 的 TypeScrip...

其他

  • 依赖升级,Babel 升级到 7.9.5
  • 脚手架在 postinstall 里执行 umi generate tmp,并且默认不编译 node_modules

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机程序设计艺术(第3卷)-排序和查找(英文影印版)

计算机程序设计艺术(第3卷)-排序和查找(英文影印版)

(美)Donald E.Knuth / 清华大学出版社 / 2002-9 / 85.00元

《计算机程序设计艺术排序和查找(第3卷)(第2版)》内容简介:这是对第3卷的头一次修订,不仅是对经典计算机排序和查找技术的最全面介绍,而且还对第1卷中的数据结构处理技术作了进一步的扩充,通盘考虑了将大小型数据库和内外存储器。它遴选了一些经过反复检验的计算机方法,并对其效率做了定量分析。第3卷的突出特点是对“最优排序”一节作了修订,对排列论原理与通用散列法作了全新讨论。一起来看看 《计算机程序设计艺术(第3卷)-排序和查找(英文影印版)》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

html转js在线工具
html转js在线工具

html转js在线工具