汇编速度一直是困扰开发人员的首要问题。在此阶段,即使在增加和优化方法之后,大型芋头项目仍然很高。因此,在v3.5版本中,塔罗专注于重建编译系统,引入对WebPack5的支持并提高MINI的性能和经验- 程序和H5编译。(此外,Taro还支持Vite对Vite的支持。当时,开发人员将能够自由选择编译工具。)
同时,Taro v3.5还带来了React 18,H5 MPA等新功能,欢迎所有学生升级试验?
为了提高汇编的性能,塔罗主要做了以下操作:
接下来,我们将简单地讨论WebPack5并依靠预填充。有关汇编和加速的完整实施详细信息,请参阅RFC文档。
WebPack5已发布两年,其功能足够稳定。同时,其功能(例如持久性缓存,模块接头结合和更好的树木摇动)为项目编译过程提供了更好的解决方案。
持久性缓存函数是最重要的功能之一,在再次编译时可以大大提高速度。但同时,它也引入了如何缓存失败的问题。
塔罗遵循WebPack的概念“编译安全性比编译速度更重要”,默认情况下不会打开持久性缓存。开发人员设计缓存策略后,强烈建议打开持久性缓存。请进行详细的配置,请使用详细的配置。请参阅mini.cache。
WebPack5的另一个重要功能是模块联合。由UMIJS MFSU特征启发,您可以预先确定项目的Node_modules依赖包装作为模块联邦远程应用程序。再次编译时,WebPack不需要编译依赖项,从而提高了编译速度。
依赖的预填充可以分为三个步骤:
塔罗(Taro)指的是使用Esbuild来收集用户使用的第三方依赖关系并分别打包。包装模块将用作WebPack的输入,最终包装是用于主应用程序(主机)消耗的模块联邦远程应用程序有关详细信息,请参阅RFC文档。
塔罗(Taro)将在小程序环境的开发模式下默认打开依赖的预组功能。首次编译时,由于Esbuild包装第三方依赖关系,它将比普通汇编稍快。可以直接重复使用远程应用程序。WebPack只需要编译业务代码,因此根据不同的项目,将编译不同的汇编和速度效果。
依赖于预处理的流程图:
简
可以看出:
升级旧项目后,您需要安装WebPack5的相关依赖关系以正常编译。有关详细信息,请参阅下面的[升级指南]部分。
只需修改芋头的汇编配置以打开webpack5,持续缓存的功能,并依赖于pre -opolation:
React正式发布了React V18版本,带来了许多新功能,例如自动批处理,过渡和并发,并改善了React Performance。Taro还尽快完成了React18的兼容性。
React当前有两种工作模式:和。在并发模式下,新的客户端API用于渲染组件。
默认情况下,芋头React仍将以模式运行。简单地修改插头的配置,以启用模式:
不要忘记将项目的React版本升级到V18
有关详细信息,请参阅讨论
与水疗中心(单页应用程序)相比,服务器端渲染(SSR)可以带来更快的第一屏渲染速度和更好的SEO。因此,SSR功能是每个人都期望塔罗支持酮的功能。
塔罗(Taro)在版本3.1中提出了开放体系结构的想法,使开发人员能够编写插头,以使塔罗(Taro)支持新平台。
通过塔罗插头-in,React生态系统中的众所周知的Next.js框架被用作塔罗的新目标平台,以允许塔罗支持服务器渲染(SSR)。
此插件项目的地址目前位于:Symind/Tarojs-Plugin-Platform-Nextjs
早)插头 - 目前正在早期建设中,不建议用于生产环境!
安装插头-in和Next.js框架。
将此插头添加到芋头项目的汇编配置中。
尝试一下!
许多学生通过阅读塔罗的源代码发现,塔罗支持了1.x的太多页面应用程序,并且可以通过配置模式打开此功能。但是文档中的说明。
在2.x时,由于各种原因,我们回到了这个特征。尽管开发人员仍然可以通过项目中的插件或自定义的WebPack配置来满足类似的需求,但是在某些详细信息中仍然很难处理。不需要为MPA的路由事件方法提供支持...
MPA是许多社区开发人员的重要特征之一。为此,我们重写并有个性化需要适应该模型。此模式的使用仅需要如下配置:
应该注意的是,许多小程序事件和方法都是基于水疗模式设计的。它不适用于MPA模式,因此会有一些问题。对于exampletepeat触发器,不支持路由动画,生产戒指还需要其他配置路由映射等等。在打开此模式之前,您需要仔细考虑适用的方案。
EXPO是React天然生态系统中的重要作用。它提供了许多出色的模块。它被广泛用于芋头,例如Expo-AV,Expo-Camera等。将来,我们将继续访问新的模块。Expo的模块系统已从Unimodules更改为Expo一段时间。改变体系结构的原因可以参考文章:世博模块中的新内容。
Taro v3.5将来将使用新的模块系统。您可以通过Taro Init选择React-native模板体验。如果您使用的是Taro Shell Project,则可以切换到0.67.0-Expo分支体验。
如果新版本和旧版本的芋头和壳工程都混合在一起,则将存在不相容性。主要原因是有多种版本的本机依赖项可以通过版本的版本来解决。相应的版本是指此处。
随后的外壳项目将不再包括Un -Imodules版本。旧版本升级可以参考此PR。
注意:升级到博览会将不再支持iOS 11.有关详细信息,请参阅讨论。
1.安装v3.5.0-beta的CLI工具:
2.更新项目依赖性
如果安装失败或打开项目失败,则可以删除Node_modules,Yarn.lock,Package-Lock.json,并在尝试之前重新安装依赖项。
2.1修改包中的芋头相关版本。json文件以修改
2.2破裂
2.3重新安装依赖项
3.使用webpack5
创建新项目后,您可以选择编译工具。
升级旧项目后的更新依赖项:
接下来,我们将继续迭代版本,包括实现H5依赖性预编辑。在版本中,它将支持VITE,同时优化操作过程中的性能。
最后,我衷心感谢参加塔罗开放源代码和共同建设的学生!为了建立一个更完整,更可持续的塔罗开放源代码生态系统并强调了贡献者的价值,塔罗(Taro)发起了更清晰的参与机制和荣誉激励措施机制,欢迎更多的学生参加?
原始:https://juejin.cn/post/7099647308983173156