# 什么是编译器

uni-app能实现一套代码、多端运行,核心是通过编译器 + 运行时实现的:

  • 编译器:将uni-app统一代码编译生成每个平台支持的特有代码;如在小程序平台,编译器将.vue文件拆分生成wxmlwxssjs等代码。
  • 运行时:动态处理数据绑定、事件代理,保证Vue和平台宿主数据的一致性;

uni-app项目根据所依赖的Vue版本不同,编译器的实现也不同:

uni-app项目根据创建方式的不同,编译器在使用上也有差异:

  • cli 方式创建的项目,编译器安装在项目下。编译器不会跟随HBuilderX升级。如需升级编译器,可以参考:更新依赖到指定版本
  • HBuilderX可视化界面创建的项目,编译器在HBuilderX的安装目录下的plugin目录,随着HBuilderX的升级会自动升级编译器。
  • 已经使用cli创建的项目,如果想继续在HBuilderX里使用,可以把工程拖到HBuilderX中。注意如果是把整个项目拖入HBuilderX,则编译时走的是项目下的编译器。如果是把src目录拖入到HBuilderX中,则走的是HBuilderX安装目录下plugin目录下的编译器。