• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 在build-profile.json5中配置arkOptions
2
3## 概述
4
5arkOptions主要提供ArkTS编译相关配置,当前文档介绍arkOptions中types配置类型、maxFlowDepth配置控制流分析最大栈深度等,arkOptions中的其他配置项请参考[build-profile.json5](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-hvigor-build-profile-V5)6
7## types
8
9### types配置文件标签说明
10
11  arkOptions的types字段配置文件标签说明
12
13| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
14| -------- | -------- | -------- | -------- |
15| types | 通过types字段将指定的类型声明文件作为全局引入,从而避免在每个源码文件中单独引入 | 数组 | 该标签可缺省,缺省值为空 |
16
17### arkOptions中的types字段配置说明
18
19arkOptions中types字段示例:
20
21在模块build-profile.json5配置文件buildOption标签的arkOptions属性中添加types字段。
22```json
23// 在/entry/build-profile.json5
24{
25  "arkOptions": {
26    "types": ["chai", "./oh_modules/@types/mocha", "./src/main/ets/pages/global"]
27  }
28}
29```
30
31types字段支持填写包名、包所在位置的相对路径以及声明文件所在相对路径,仅支持当前模块内的查找,若目录下存在同名文件(后缀不同),默认加载顺序.d.ets > .d.ts。<br />
32(1)填写包名方式:通过包名到oh_modules/@types/目录查找包名中定义的声明文件,如"chai"。<br />
33(2)填写包所在相对路径方式:支持在基于build-profile.json5的相对路径中查找定义的声明文件,如"./oh_modules/@types/mocha"。<br />
34(3)填写声明文件所在相对路径方式:支持查找相对路径下的声明文件,如"./src/main/ets/pages/global"。
35
36### 注意事项
37
38如果在types字段中填写包名或者包所在位置的相对路径,需要在工程文件/entry/oh-package.json5中dependencies作如下配置,
39```json
40"dependencies": {
41  "@types/chai": "latest",
42  "@types/mocha": "latest"
43}
44```
45
46如果在types字段中填写声明文件所在相对路径,前提是在模块下存在相应的声明文件,比如模块下存在src/main/ets/pages/global.d.ts声明文件,声明文件内容如下所示:
47```typescript
48declare namespace Global {
49  type ObjectType = string | number;
50}
51```
52
53通过types全局引入后,对全局类型的使用示例如下:
54```typescript
55// 在entry/src/main/ets/pages/Index.ets
56let a: Chai.Message;
57let b: Mocha.HookFunction;
58let c: Global.ObjectType;
59```
60
61## transformLib
62
63### transformLib配置文件标签说明
64
65arkOptions的transformLib字段配置文件标签说明
66
67| 属性名称 | 含义 | 配置范围 | 数据类型 | 是否可缺省 |
68| -------- | -------- | -------- | -------- | -------- |
69| transformLib | 字节码插桩插件配置,允许开发者在编译时对字节码进行插桩修改,仅支持Stage模型,格式为相对路径,指向实现插桩功能的动态库,不同系统要求的动态库文件类型如下,动态库文件内容需要在对应平台生成,不能拷贝修改后缀名混用。| 模块级 | 字符串型 | 该标签可缺省,缺省值时代表不使用该功能。 |
70
71### arkOptions中的transformLib字段配置说明
72
73arkOptions中transformLib字段示例:
74
75在模块build-profile.json5配置文件buildOption标签的arkOptions属性中添加transformLib字段。
76```json
77// 在/entry/build-profile.json5
78{
79  "buildOption": {
80    "arkOptions": {
81      "transformLib": "./dll/example.dll"
82    }
83  }
84}
85
86```
87修改方舟字节码能力可参考[编译期自定义修改方舟字节码](customize-bytecode-during-compilation.md)。
88
89### 注意事项
90
91- 若开发者未对字段进行配置时,则默认不使用该功能。
92- HAP、HSP模块配置即生效,HAR模块仅字节码HAR配置生效,非字节码HAR配置不生效。
93- 文件格式要求:Windows:.dll文件,Linux/Mac:.so文件。