# ets_frontend组件 - [ets_frontend组件](#ets_frontend组件) - [简介](#简介) - [目录](#目录) - [编译构建](#编译构建) - [使用说明](#使用说明) - [相关仓](#相关仓) ## 简介 ets_frontend组件是方舟运行时子系统的前端工具,结合ace-ets2bundle组件,支持将ets文件转换为方舟字节码文件。 更多信息请参考:[方舟运行时子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/ARK-Runtime-Subsystem-zh.md) **ets_frontend组件架构图** ![](/figures/zh-cn_image_ets_frontend_arch.png) ## 目录 ``` /arkcompiler/ets_frontend/ ├── test262 # test262测试配置和运行脚本 ├── testTs # 系统测试目录 ├── es2panda ├── aot # 逻辑入口 ├── binder # 信息绑定 ├── compiler # 编译逻辑 ├── ir # 字节码生成 ├── lexer # 词法分析 ├── parser # 语法解析,ast生成 ├── scripts # 脚本目录 ├── test # 测试目录 ├── typescript # typescript支持 └── util # 工具目录 ├── ts2panda ├── doc # 文档 ├── scripts # 依赖的脚本 ├── src # 源码存放目录 ├── templates # ruby模板文件 ├── tests # UT单元测试目录 ├── tools # ts2abc提供的工具 └── ts2abc # abc文件生成相关 ``` ## 编译构建 ets_frontend组件采用命令行交互方式,支持将JavaScript代码转换为方舟字节码文件,使其能够在方舟运行时上运行。支持Windows/Linux/MacOS平台。方舟前端工具在linux平台上可通过全量编译或指定编译前端工具链获取。 ``` $ ./build.sh --product-name rk3568 --build-target ets_frontend_build ``` ### 使用说明 #### es2panda使用方式 #### 使用ets_frontend组件下的es2abc可执行文件将JavaScript文件转换为方舟字节码文件 ``` $ cd out/rk3568/clang_x64/arkcompiler/ets_frontend/ $ ./es2abc [options] file.js ``` 当不输入任何option参数时,默认生成方舟二进制文件。

选项

描述

取值范围

默认值

--debug-info

携带debug信息

-

-

--debugger-evaluate-expression

debugger下对输入的base64形式的表达式求值

-

-

--dump-assembly

输出为汇编文件

-

-

--dump-ast

打印解析得到的ast(抽象语法树)

-

-

--dump-debug-info

打印debug信息

-

-

--dump-literal-buffer

打印literal buffer内容

-

-

--dump-size-stat

显示字节码相关的统计信息

-

-

--extension

指定输入类型

['js', 'ts', 'as']

-

--help

帮助提示

-

-

--module

按照ESM模式编译

-

-

--opt-level

指定编译优化等级

['0', '1', '2']

0

--output

输出文件路径

-

-

--parse-only

只对输入文件做解析动作

-

-

--thread

指定生成字节码时所用的线程数目

0-机器支持的线程数目

0

更多使用说明请参考:[方舟运行时使用指南](https://gitee.com/openharmony/arkcompiler_ets_runtime/blob/master/docs/README_zh.md) ## 相关仓 [arkcompiler\_runtime\_core](https://gitee.com/openharmony/arkcompiler_runtime_core) [arkcompiler\_ets\_runtime](https://gitee.com/openharmony/arkcompiler_ets_runtime) **[arkcompiler\_ets\_frontend](https://gitee.com/openharmony/arkcompiler_ets_frontend)**