# 什么是 uni-app x 编译器

uni-app x的编译器由uvue编译器、uts语言编译器共同组成,还调用了kotlin、swift编译器。

编译器把开发者书写的uvue和uts代码进行编译,配合运行时实现了跨平台。

uvue编译器是在Vite基础上进行扩展开发的。

它的大部分特性(如条件编译)和配置项(如环境变量)与uni-app的vue3编译器一致,详见

支持less、sass、scss等css预编译。

# 编译缓存

uni-app x编译器引入了编译缓存机制,以优化开发体验。

在App端,uni-app x首先将uts和uvue编译为平台原生语言(如Kotlin),然后经过平台配套的编译器进行打包运行。

App原生语言的编译过程耗时较长,因此编译器引入了缓存机制来加快开发过程。

在编译时,开发者的uts和uvue代码的编译结果会被持久化为缓存,存在unpackage目录下。

当下次运行时,如果代码没有发生变动,编译器会优先使用缓存中的编译结果,从而加快编译速度。

缓存有可能失效,如果你修改代码后保存发现手机端没有更新,可以在HBuilderX运行窗口勾选清理构建缓存试下。

这个机制类似于传统强类型语言开发中的Build和clean。

# 注意

  • uni-app x编译器会产生kt、class等临时文件。安全软件(如360、微软)会对其进行木马扫描,消耗电脑性能。建议将项目的unpackage目录设置为信任,以提升编译性能。

360设置方式

微软设置方式