> 文档中心 > OpenHarmony Arkts编译工具链开发

OpenHarmony Arkts编译工具链开发


编译typescript

准备鸿蒙全套代码,进入third_party/typescript/目录,执行如下命令:

npm install -g gulpnpm installnpm run gulp LKGnpm packcp *.tgz build_package/

拷贝到typescript代码目录下的build_package目录。

编译工具链

npm installnpm run buildnpm run compile

默认编译的工程为compiler目录下sample工程。

ArkTs编译流程

以一个文件编译为例。为了更好更快搞清楚ArkTs编译过程中如何进行特殊的语法校验支持,通过VsCode断点编译单个文件的流程。在设置断点Debug之前,我们需要做如下前置准备:

  • 去掉ArkTs compiler工程中的uglify配置,修改为如下配置:
      "scripts": {   "lint": "eslint --fix ./src --ext .ts",   "build": "./node_modules/.bin/babel ./src --out-dir lib --extensions .ts",   "create": "node ./lib/create.js --env projectName",   "compile": "npm run build && webpack --config webpack.config.js --env buildMode=debug projectName",   "test": "npm run build && mocha -r mocha-context/register test/test.js && mocha -r mocha-context/register test/test.js --partialUpdate",   "generateDeclarations": "node ./build_declarations_file.js ../../../interface/sdk-js/api/@internal/component/ets ./declarations ./lib",   "postinstall": "node npm-install.js",   "fastbuild": "rollup -c rollup.config.js" },
  • 添加调试配置
    OpenHarmony Arkts编译工具链开发
  • 设置断点
    OpenHarmony Arkts编译工具链开发
  • 开始调试
    OpenHarmony Arkts编译工具链开发

主要堆栈如下(省略了非关键函数调用过程):

在这里插入代码片

OpenHarmony Arkts编译工具链开发
看起来太复杂,结合堆栈简化下流程:

如下图:检查某个表达式节点中,某属性获取节点流程:
OpenHarmony Arkts编译工具链开发

key word:

program:
language sevice:
sourceFile: SourceFileObject