鸿蒙5.0开发进阶:配置文件(模块级build-profile.json5文件)

往期鸿蒙5.0全套实战文章必看:(文中附带全栈鸿蒙5.0学习资料)


模块级build-profile.json5文件

配置文件结构

模块级build-profile.json5文件整体的结构如下。

apiType
targets
└── name
└── runtimeOS
└── config
    └── distroFilter / distributionFilter
        └── apiVersion
            └── policy
            └── value
        └── screenShape
            └── policy
            └── value
        └── screenWindow
            └── policy
            └── value
        └── screenDensity
            └── policy
            └── value
        └── countryCode
            └── policy
            └── value
    └── deviceType
    └── buildOption
    └── atomicService
        └── preloads
            └── moduleName
└── source
    └── abilities
        └── name
        └── pages
        └── res
        └── icon
        └── label
        └── launchType
    └── pages
    └── sourceRoots
└── resource
    └── directories
└── output
    └── artifactName
showInServiceCenter
buildOption
buildOptionSet
└── name
└── debuggable
└── copyFrom
└── resOptions
    └── compression
        └── media
            └── enable
        └── filters
            └── method
                └── type
                └── blocks
            └── files
                └── path
                └── size
                └── resolution
            └── exclude
                └── path
                └── size
                └── resolution
    └── copyCodeResource
        └── enable
        └── excludes
└── externalNativeOptions
    └── path
    └── abiFilters
    └── arguments
    └── cppFlags
    └── cFlags
    └── targets
└── sourceOption
    └── workers
└── nativeLib
    └── filter
        └── excludes
        └── pickFirsts
        └── pickLasts
        └── enableOverride
        └── select
            └── package
            └── version
            └── include
            └── exclude
    └── debugSymbol
        └── strip
        └── exclude
    └── headerPath
    └── collectAllLibs
    └── excludeFromHar
    └── excludeSoFromInterfaceHar
    └── librariesInfo
        └── name
        └── linkLibraries
└── napiLibFilterOption
    └── excludes
    └── pickFirsts
    └── pickLasts
    └── enableOverride
└── arkOptions
    └── runtimeOnly  
        └── sources  
        └── packages  
    └── types  
    └── obfuscation
        └── ruleOptions
            └── enable
            └── files
        └── consumerFiles
    └── buildProfileFields
    └── integratedHsp
    └── transformLib
    └── branchElimination
    └── byteCodeHar
    └── bundledDependencies
    └── autoLazyImport
    └── apPath
    └── hostPGO
└── removePermissions
    └── name
buildModeBinder
└── buildModeName
└── mappings
    └── targetName
    └── buildOptionName
entryModules

配置文件字段说明

下表为"Ability"类型的Module(HAP)对应的模块级build-profile.json5中配置项包含的字段,"Library"类型的Module(HAR和HSP)对应的模块级build-profile.json5中配置项为下表罗列范围的子集。

表1 模块级build-profile.json5文件字段说明

字段名称

类型

是否必选

含义

apiType

字符串

可选

API模型类型:

  • stageMode:Stage模型,后续长期演进的模型,推荐使用该模型。
  • faMode:FA模型。

targets

对象数组

可选

定义的target,可配置多个;若配置,数组长度至少为1。

showInServiceCenter

布尔值

可选

是否显示在服务中心:

  • true:显示。
  • false(缺省默认值):不显示。

buildOption

对象

可选

模块在构建过程中的相关配置。

其中不支持配置name、debuggable和copyFrom字段。

在FA模型中,arkOptions配置中仅支持配置types字段。

buildOptionSet

对象数组

可选

表16buildOption的集合,其中name字段必填,每个配置都是当前支持的编译过程中所有可用工具的通用配置选项集。

buildModeBinder

对象数组

可选

构建模式(debug、release 等)与构建配置(buildOption)的关联配置。通过该配置可以将不同的构建配置和target进行组合,并绑定到对应的构建模式上,其中构建模式需要在工程级别的构建模式列表中已定义。

entryModules

字符串数组

可选

Feature类型模块所关联的入口模块。

targets

targets用于给模块配置多目标产物,可配置多个;若配置,数组长度至少为1。

表2 targets

字段名称

类型

是否必选

含义

name

字符串

必选

target名称。

runtimeOS

字符串

可选

target的目标运行环境:

  • HarmonyOS
  • OpenHarmony

config

对象

可选

target相关配置。

source

对象

可选

target的源码范围。

resource

对象

可选

target包含的资源目录。

output

对象

可选

定制产品生成的应用包的配置。

表3 resource

字段名称

类型

是否必选

含义

directories

array

可选

资源目录地址。

表4 output

字段名称

类型

是否必选

含义

artifactName

string

必选

自定义产品生成的应用包名称,可由数字、英文字母、中划线、下划线和英文句号(.)组成,支持输入版本号。

targets字段示例:

"targets": [
  {
    "name": "default",
    "resource": {
      "directories": ["./src/main/resources"]
    },
    "output": {
      "artifactName": "customizedTargetOutputName-1.0.0"
    }
  }
]

config

config是target相关配置。

表5 config

字段名称

类型

是否必选

含义

distroFilter

对象

可选

应用市场分发规则。在FA模型中使用。

distributionFilter

对象

可选

应用市场分发规则。在Stage模型中使用。

deviceType

字符串数组

可选

target支持的设备类型,必须在module.json5中已定义。

在FA模型中,对应的文件为config.json。

buildOption

对象

可选

模块在构建过程中的相关配置。

其中不支持配置name、debuggable和copyFrom字段。

atomicService

对象

可选

元服务相关配置,仅支持在Stage模型中配置。

source

source用于指定target的源码范围。

表6 source

字段名称

类型

是否必选

含义

abilities

对象数组

可选

自定义target的能力范围。

在FA模型工程中支持对Ability源码目录下的page页面进行定制。

pages

字符串数组

可选

Stage模型工程中支持对pages源码目录的page页面进行定制,数组长度至少为1。

sourceRoots

字符串数组

可选

Stage模型工程中支持对差异化代码空间进行定制,数组长度至少为1。数组中的值有以下限制:

  1. 必须唯一;
  2. 必须为相对路径;
  3. 类型必须为文件夹;
  4. 文件夹必须真实存在;
  5. 文件夹必须与src/main同级;

当数组中存在多个值时,寻址的优先级为数组中值的顺序。

source字段示例:

"targets": [
  {
    "name": "default",
    "source": {
       "pages": [         // Stage模型
        "pages/Index"
      ],
      "abilities": [     // FA模型
        {
          "name": ".MainAbility",
          "pages": [
            "pages/index"
          ]
        }
      ],
      "sourceRoots": [
        "./src/default"
      ]
    }
  }
]

distroFilter/distributionFilter

distroFilter/distributionFilter用于指定应用市场分发规则,distroFilter在FA模型中使用,distributionFilter在Stage模型中使用。

表7 distroFilter/distributionFilter

字段名称

类型

是否必选

含义

apiVersion

对象

可选

支持的apiVersion范围。

screenShape

对象

可选

屏幕形状的支持策略。

screenWindow

对象

可选

应用运行时窗口的分辨率支持策略。

screenDensity

对象

可选

屏幕的像素密度支持策略。

countryCode

对象

可选

应用需要分发的国家地区码。

apiVersion

表8 apiVersion

字段名称

类型

是否必选

含义

policy

字符串

必选

取值规则:

  • include:需要包含的value属性。
  • exclude:需要排除的value属性。

value

整型数组

必选

支持的取值为API Version存在的整数值,例如10。

screenShape

表9 screenShape

字段名称

类型

是否必选

含义

policy

字符串

必选

取值规则:

  • include:需要包含的value属性。
  • exclude:需要排除的value属性。

value

字符串数组

必选

支持的取值范围:

  • circle:圆形
  • rect:矩形

screenWindow

表10 screenWindow

字段名称

类型

是否必选

含义

policy

字符串

必选

当前取值仅支持“include”。

  • include:需要包含的value属性。

value

字符串数组

必选

单个字符串的取值格式为“宽*高”,取值为整数像素值,例如"454*454"。

screenDensity

表11 screenDensity

字段名称

类型

是否必选

含义

policy

字符串

必选

取值规则:

  • include:需要包含的value属性。
  • exclude:需要排除的value属性。

value

字符串数组

必选

取值范围:

  • sdpi:小规模的屏幕密度(Small-scale Dots per Inch),适用于dpi取值为(0,120]的设备。
  • mdpi:中规模的屏幕密度(Medium-scale Dots Per Inch),适用于dpi取值为(120,160]的设备。
  • ldpi:大规模的屏幕密度(Large-scale Dots Per Inch),适用于dpi取值为(160,240]的设备。
  • xldpi:大规模的屏幕密度(Extra Large-scale Dots Per Inch),适用于dpi取值为(240,320]的设备。
  • xxldpi:大规模的屏幕密度(Extra Extra Large-scale Dots Per Inch),适用于dpi取值为(320,480]的设备。
  • xxxldpi:表示大规模的屏幕密度(Extra Extra Extra Large-scale Dots Per Inch),适用于dpi取值为(480, 640]的设备。

countryCode

表12 countryCode

字段名称

类型

是否必选

含义

policy

字符串

必选

取值规则:

  • include:需要包含的value属性。
  • exclude:需要排除的value属性。

value

字符串数组

必选

国家地区码取值,具体值以ISO-3166-1标准为准。支持多个国家和地区枚举定义。

distroFilter/distributionFilter字段示例:

"targets": [
  {
    "name": "default",
    "config": {
      "distributionFilter": {
        "apiVersion": {
          "policy": "include",
          "value": [12]
        },
        "screenShape": {
          "policy": "include",
          "value": [
            "circle",
            "rect"
          ]
        },
        "screenWindow": {
          "policy": "include",
          "value": [
            "454*454",
            "466*466"
          ]
        },
        "screenDensity": {
          "policy": "exclude",
          "value": [
            "ldpi",
            "xldpi"
          ]
        },
        "countryCode": {
          "policy": "include",
          "value": [
            "CN"
          ]
        }
      }
    },
  }
]

atomicService

表13 atomicService

字段名称

类型

是否必选

含义

preloads

对象数组

可选

定义当前模块运行时预加载的模块。

表14 preloads

字段名称

类型

是否必选

含义

moduleName

字符串

可选

预加载的模块名称。

atomicService字段示例:

"targets": [
  {
    "name": "default",
    "config": {
      "atomicService": {
        "preloads": [
          {
            "moduleName": "preloadSharedLibrary"
          }
        ]
      }
    }
  }
]

abilities

abilities用于自定义target的能力范围。

表15 abilities

字段名称

类型

是否必选

含义

name

字符串

必选

指定target选择的ability的名称。

pages

字符串数组

可选

FA模型中,指定target选择的ability的page。

res

字符串数组

可选

指定资源目录。

icon

字符串

可选

指定ability图标文件的索引,格式为"$media:ability_icon"。

label

字符串

可选

指定对用户可见的名称,要求采用该名称的资源索引,以支持多语言。

launchType

字符串

可选

指定ability的启动模式:

  • multiton:多实例模式,每次启动创建一个新实例。
  • standard:同multiton,建议使用multiton替代。
  • singleton(缺省默认值):单实例模式,仅第一次启动创建新实例。
  • specified:指定实例模式,运行时由开发者决定是否创建新实例。

abilities字段示例:

"targets": [
  {
    "name": "default",
    "source": {
      "abilities": [
        {
          "name": "EntryAbility",
          "icon": "$media:layered_image",
          "label": "$string:EntryAbility_label",
          "launchType": "singleton"
        }
      ]
    }
  }
]

buildOption

buildOption是模块在构建过程中的相关配置,buildOptionSet和targets中也支持配置buildOption。此外,工程级build-profile.json5中也支持配置buildOption。工程级别buildOption配置会与模块级别的buildOption进行合并。

表16 buildOption

字段名称

类型

是否必选

含义

name

字符串

可选

构建配置方案buildOption的名称。

debuggable

布尔值

可选

当前编译产物是否为可调试模式(debug):

  • true(缺省默认值):可调试。
  • false:不可调试。

当使用release的构建模式时,默认为false。

copyFrom

字符串

可选

配置已定义的buildOption的name,表示从本模块已有的buildOption复制配置。

resOptions

对象

可选

资源编译配置项。

externalNativeOptions

对象

可选

Native编译配置项。

sourceOption

对象

可选

源码相关配置。使用不同的标签对源代码进行分类,以便在构建过程中对不同的源代码进行不同的处理。

nativeLib

对象

可选

Native 库(.so)相关配置。

napiLibFilterOption

对象

可选

NAPI库(.so)文件的筛选选项。标记为废弃,不建议使用,推荐使用nativeLib/filter

arkOptions

对象

可选

ArkTS编译配置。

removePermissions

对象数组

可选

指定编译时需要删除的依赖包中的冗余权限,模块本身的权限不会被删除,仅HAP/HSP模块支持配置。

sourceOption

sourceOption是源码相关配置,使用不同的标签对源代码进行分类,以便在构建过程中对不同的源代码进行不同的处理。

表17 sourceOption

字段名称

类型

是否必选

含义

workers

字符串数组

可选

指定使用node.js工作器的JS/TS源代码,源代码在构建过程中单独处理。

sourceOption字段示例:

"buildOption": {
  "sourceOption": {
    "workers": [
      "./src/main/ets/common/constants/CommonConstants.ets"
    ]
  }
}

napiLibFilterOption

napiLibFilterOption是NAPI库(.so)文件的筛选选项,字段已废弃,不建议使用,推荐使用nativeLib/filter

表18 napiLibFilterOption

字段名称

类型

是否必选

含义

excludes

字符串数组

可选

排除的.so文件。罗列的NAPI库将不会被打包。

pickFirsts

字符串数组

可选

按照.so文件的优先级顺序,打包最高优先级的.so文件。

pickLasts

字符串数组

可选

按照.so文件的优先级顺序,打包最低优先级的.so文件。

enableOverride

布尔值

可选

是否允许当.so文件重名冲突时,使用高优先级的.so文件覆盖低优先级的.so文件:

  • true:允许。
  • false(缺省默认值):不允许。

arkOptions

arkOptions是ArkTS编译配置。

表19 arkOptions

字段名称

类型

是否必选

含义

runtimeOnly

对象

可选

配置动态import的文件和依赖的包名,仅支持在Stage模型中配置。

runtimeOnly为非必选配置,当工程需要以变量方式动态import文件、目录的相对路径或三方包时,需要通过配置runtimeOnly来确保其加入编译流程。

types

字符串数组

可选

自定义类型,可配置包名或d.ts/d.ets文件路径。

obfuscation

对象

可选

代码混淆配置。

buildProfileFields

对象

可选

运行时可获取的自定义构建参数,支持键值对配置,key可由数字、英文、下划线、中划线组成,value类型仅支持string、number、boolean。

integratedHsp

布尔值

可选

是否为集成态HSP

  • true:是。
  • false(缺省默认值):否。

说明

  • 从API 12开始支持。
  • 需在工程级build-profile.json5中配置useNormalizedOHMUrl为true后使用。
  • 该字段仅在HSP模块中配置后生效。

transformLib

字符串

可选

字节码插桩插件配置,允许开发者在编译时对字节码进行插桩修改,仅支持Stage模型,格式为相对路径,不同系统要求的文件类型如下,文件内容需要在对应平台生成,不能拷贝修改后缀名混用。

  • Windows:.dll文件。
  • Linux/Mac:.so文件。

说明

  • Mac环境下添加配置后插桩未生效的问题请参考FAQ
  • HAR模块仅字节码HAR配置生效,非字节码HAR配置不生效。

branchElimination

布尔值

可选

是否启用代码分支裁剪,减少编译产物大小,开启后,在release编译模式下,不会被执行到的代码分支会被裁剪掉,示例如下:

# 编译生成的BuildProfile文件
export const DEBUG = false;
export const VERSION_CODE = 100;
# 开发者自定义的ets文件
import { DEBUG } from 'BuildProfile';
import { VERSION_CODE } from 'BuildProfile';
if (DEBUG)
  {XXX} // 该分支会被裁剪掉
else
  {XXX}
if (VERSION_CODE){XXX} // 该语法发生了类型转换,不支持代码裁剪。
if (VERSION_CODE === 100){XXX} // 若需要裁剪代码,使用该方式,显式指定判断条件为boolean类型。
  • true:启用(将导致使用"ApplyChanges"功能时,对const声明的常量的值进行的修改可能不生效)。
  • false(缺省默认值):不启用。

说明

  • 仅支持API 11及以上的Stage模型。
  • HAR模块仅字节码HAR配置生效,非字节码HAR配置不生效。
  • 仅支持const声明的bool类型常量和const声明的string/number类型常量的判断表达式。
  • 不支持间接导入,例如A文件中定义const变量A1,B文件导入A1,导出B1,ets导入B1进行判断,无法进行裁剪。

byteCodeHar

布尔值

可选

是否构建字节码HAR,仅在HAR模块中配置后生效。

  • true:支持。
  • false:不支持。

说明

  • 从API 12开始支持。
  • 从DevEco Studio NEXT Beta1(5.0.3.800)版本开始,当工程级build-profile.json5中useNormalizedOHMUrl配置为true时,byteCodeHar缺省默认值为true;当useNormalizedOHMUrl配置为false时,byteCodeHar缺省默认值为false。

bundledDependencies

布尔值

可选

是否支持将多个源码HAR(本地+远程)打包成一个字节码HAR。字节码HAR、HSP、npm不会被打包进去,仅会合并源码HAR。

  • true:支持。
  • false(缺省默认值):不支持。

说明

  • 仅支持字节码HAR配置该字段。
  • 从API 12开始支持。
  • 仅支持Stage模型。

autoLazyImport

布尔值

可选

编译时是否自动将符合lazy-import语法规范的import语句添加"lazy"关键字。仅支持在源码中添加"lazy"关键字,不包含依赖的字节码HAR包或HSP。

  • true:添加。
  • false(缺省默认值):不添加。

说明

如果配置为true,编译时不会做场景识别,即源码中任何符合语法规范的import语句都会被添加"lazy"。

apPath

字符串

可选

说明

API 11及以上版本不再支持,即该字段配置后不再生效。

应用热点信息文件路径。

hostPGO

布尔值

可选

是否启用配置文件引导优化功能:

  • true:启用。
  • false(缺省默认值):不启用。

从API 10开始废弃。

表20 runtimeOnly

字段名称

类型

是否必选

含义

sources

array

可选

配置动态import的文件/文件夹的相对路径。

配置的文件/文件夹必须在工程中真实存在,且文件的后缀只能为ets或ts。

packages

array

可选

配置动态import依赖的包名。

该包名需要和工程级/模块级oh-package.json5的dependencies中的名字保持一致。

arkOptions字段示例:

"buildOption": {
  "arkOptions": {
    "runtimeOnly": {
      "sources": ["./src/main/ets/utils/Calc.ets"],
      "packages": ["myHar"]
    },
    "buildProfileFields": {
      "buildOptionSetData": "BuildOptionSetDataRelease",
      "data": "DataRelease"
    },
    "transformLib": "./dll/example.dll",
    "branchElimination": true,
    "autoLazyImport": true
  }
}

removePermissions

removePermissions是一个对象数组,用于编译HAP/HSP模块时,指定需要删除的依赖包中的冗余权限,模块本身的权限不会被删除。

表21 removePermissions

字段名称

类型

是否必选

含义

name

字符串

必选

待删除的权限名称,需要包含在依赖包的module.json的requestPermissions中。

removePermissions字段示例:

"buildOption": {
  "removePermissions": [
    {
      "name": "ohos.permission.ABILITY_BACKGROUND_COMMUNICATION"
    },
    {
      "name": "ohos.permission.ACCELEROMETER"
    }
  ]
}

resOptions

resOptions是资源编译配置项。

表22 resOptions

字段名称

类型

是否必选

含义

compression

对象

可选

对工程预置图片资源进行纹理压缩的编译配置参数。

copyCodeResource

对象

可选

对模块的src/main/ets目录下的资源文件(非源码文件)拷贝的编译配置参数。

说明

该字段对不开启混淆的源码HAR不生效。

表23 copyCodeResource

字段名称

类型

是否必选

含义

enable

布尔值

可选

是否将ets目录下的资源文件打包到产物中。

  • true(缺省默认值):打包。
  • false:不打包。

excludes

字符串数组

可选

根据glob语法排除匹配到的文件,匹配到的文件不会被打包到产物中。当enable配置为false时excludes不生效。

copyCodeResource字段示例:

"buildOption": {
  "resOptions": {
    "copyCodeResource": {
      "enable": true,
      "excludes": ['./entry/src/main/ets/component/big_picture.png', '**/*.yml', '**/subDir/**'],
    }
  }
}

compression

compression是对工程预置图片资源进行纹理压缩的编译配置参数。

表24 compression

字段名称

类型

是否必选

含义

media

对象

可选

对资源目录下media目录的图片进行纹理压缩的配置参数。

filters

对象数组

可选

文件过滤配置参数。

说明

编译过程中会依次遍历图片文件,并与filters条件进行匹配,一旦匹配成功,则完成该图片的处理。当工程级和模块级同时配置时,先按照模块级的过滤条件匹配,一旦匹配成功,则忽略工程级的过滤条件;如果模块级的没有匹配成功,继续按工程级的条件进行匹配。

media

media是对资源目录下media目录的图片进行纹理压缩的配置参数。

表25 media

字段名称

类型

是否必选

含义

enable

布尔值

可选

是否对media图片启用纹理压缩。

  • true:启用。
  • false(缺省默认值):不启用。

说明

  • 在linux系统的构建场景下,请确认系统环境已安装libGL1库
  • 对图片进行纹理压缩会改变文件名称和内容,在分层图标以及二次编辑的场景下会引起图片显示异常,请进一步使用filters排除掉这部分文件。

filters

filters是文件过滤配置参数。

表26 filters

字段名称

类型

是否必选

含义

method

对象

必选

纹理压缩的方式。

files

对象

可选

指定用来参与压缩的文件,与exclude字段配合使用。

exclude

对象

可选

从files中剔除掉不需要压缩的文件。

表27 method

字段名称

类型

是否必选

含义

type

字符串

必选

转换类型。

  • astc(Adaptive Scalable Texture Compression):自适应可变纹理压缩,一种对GPU友好的纹理格式,可在设备侧更快地显示,有更少的内存占用。
  • sut(SUper compression for Texture) :纹理超压缩,可在设备侧更快地显示,有更少的内存占用,相比astc具备更大压缩率和更少ROM占用。

blocks

字符串

必选

astc/sut转换类型的扩展参数,决定画质和压缩率,当前仅支持"4x4"。

表28 files

字段名称

类型

是否必选

含义

path

字符串数组

可选

指定“按路径匹配”的过滤条件,符合glob规范,格式为相对路径,配置示例:

size

二维数组

可选

指定“按大小匹配”的过滤条件,格式为[min,max],闭区间,表示大小从min到max之间的文件,配置示例:


"size":[
[0, '1k'], // 0 ~ 1*1024
['1024', '2k'], // 1024 ~ 2*1024
['3K'] // 3*1024 ~ 无限大
]
  • 每个数值可以填数字、字符串或字符串中带单位(大小写均可)。
  • 单位K/k=1024,M/m=1024*1024,G/g=1024*1024*1024。
  • 区间最大值可省略,表示无限大。

resolution

二维数组

可选

指定“按分辨率匹配”的过滤条件,配置示例:

resolution:[
  [
    { width:32, height:32 },   // 最小宽高
    { width:64, height:64 },   // 最大宽高
  ],                           // 分辨率在32*32到64*64之间的图片
  [
    { width:200, height:200 }, // 最小宽高
    // 此处第2个不填表示最大宽高是无限大
  ],                           // 分辨率大于200*200的图片
]
  • width和height只能是数字。
  • 最大宽高可以省略,表示无限大。
表29 exclude

字段名称

类型

是否必选

含义

path

字符串数组

可选

同files/path。

size

二维数组

可选

同files/size。

resolution

二维数组

可选

同files/resolution。

compression字段示例:

"buildOption": {
  "resOptions": {
    "compression": {
      "media": {
        "enable": true // 是否对media图片启用纹理压缩
      },
      // 纹理压缩文件过滤,非必填,不填会压缩资源目录中的所有图片
      "filters": [
        {
          "method": {
            "type": "sut", // 转换类型
            "blocks": "4x4" // 转换类型的扩展参数
          },
          // 指定用来参与压缩的文件,需要满足所有条件且不被exclude过滤的文件才会参与压缩
          "files": {
            "path": ["./**/*"], // 指定资源目录中的所有文件
            "size": [[0, '10k']], // 指定大小10k以下的文件
            // 指定分辨率小于2048*2048的图片
            "resolution": [
              [
                { "width": 0, "height": 0 }, // 最小宽高
                { "width": 2048, "height": 2048 } // 最大宽高
              ]
            ]
          },
          // 从files中剔除掉不需要压缩的文件,需要满足所有过滤条件的文件才会被剔除
          "exclude": {
            "path": ["./**/*.jpg"], // 过滤所有jpg文件
            "size": [[0, '1k']], // 过滤大小1k以下的文件
            // 过滤分辨率小于1024*1024的图片
            "resolution": [
              [
                { "width": 0, "height": 0 }, // 最小宽高
                { "width": 1024, "height": 1024 } // 最大宽高
              ]
            ]
          }
        }
      ]
    }
  }
}

buildModeBinder

buildModeBinder是构建模式(debug、release 等)与构建配置(buildOption)的关联配置。通过该配置可以将不同的构建配置和target进行组合,并绑定到对应的构建模式上。如果没有配置buildModeBinder,默认的绑定策略请参考合并编译选项规则

表30 buildModeBinder

字段名称

类型

是否必选

含义

buildModeName

字符串

可选

构建模式名称,需要在工程级别的buildModeSet中定义。

mappings

对象数组

可选

target和buildOption之间的一对一映射关系。

表31 mappings

字段名称

类型

是否必选

含义

targetName

字符串

可选

target名称。

buildOptionName

字符串

可选

构建配置buildOption名称。

buildModeBinder字段示例:

"buildModeBinder": [
  {
    "buildModeName": "debug",
    "mappings": [
      {
        "targetName": "default",
        "buildOptionName": "release"
      }
    ]
  }
]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值