内容简介:不寒暄了,经过一周的开发,我们增加和改进了以下功能。通过一个自定义的 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)。
构成如下,
详见 mpa 配置 。
编译提速
把 Umi 3 增加的时间降回来,而且降地更多一些。
分别试了下最简项目和 antdpro 项目,最简项目无缓存编译从 7s 到 2s,antdpro 初始项目无缓存编译从 48s 到 27s。
背后我们做了几件事,
- 允许用户配置不编译 node_modules 依赖(视依赖不同可能减少 30% - 60%)
- 把处理热更新和错误渲染的 webpack-hot-dev-client 提前打包(减少 2-3 秒)
- 允许用户配置在 dev 时 external react、react-dom 等(减少 2-3 秒)
- 允许用户一键切换到 preact(减少 2-3 秒)
- 允许用户配置在 dev 时不开启补丁(减少 2-3 秒)
两种 node_modules 编译方式
node_modules 到底走不走 babel 编译?是个很纠结的问题。Umi 3 时参考 create-react-app 的实践引入了全量编译,但引发了不少编译速度和 OOM 问题。
所以,我们把 Umi 2 时不编译 node_modules 的方式也加了回来,供大家选择。
两种方式,
- 全量编译,但不编译某些依赖
- 不编译,但只编译某些依赖, es5-imcompatible-versions 下声明过的始终编译
详见 nodeModulesTransform 配置文档 。
优化 defineConfig 的 TypeScript 体验,支持插件配置
之前的 defineConfig 只支持内置的配置项,现在通过把 joi 的 schema 定义自动转为 ts 定义的方式,支持了插件的配置项的 TS 提示和校验。
其他
- 依赖升级,Babel 升级到 7.9.5
- 脚手架在 postinstall 里执行 umi generate tmp,并且默认不编译 node_modules
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 提速 10%,V8 引擎推出全新 Liftoff 基线编译器
- 提速 10%,V8 引擎推出全新 Liftoff 基线编译器
- 主题模型工具包 Gensim 3.4.0 发布,提速再提速
- 亚洲数字身份识别技术发展提速
- 优化总结:有哪些 APP 启动提速方法?
- 部署Envoy代理来为Monzo提速
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Coding the Matrix
Philip N. Klein / Newtonian Press / 2013-7-26 / $35.00
An engaging introduction to vectors and matrices and the algorithms that operate on them, intended for the student who knows how to program. Mathematical concepts and computational problems are motiva......一起来看看 《Coding the Matrix》 这本书的介绍吧!