概要

需求场景:
在项目的demo目录下创建了很多演示用的模块,上架的APP包中不能包含它们,避免包体积过大。

项目结构

在这里插入图片描述

工程级 hvigorfile.ts 配置

import { appTasks, OhosAppContext, OhosPluginId } from '@ohos/hvigor-ohos-plugin';
import { hvigor } from '@ohos/hvigor';

hvigor.nodesEvaluated(() => {
  // 获取app上下文信息
  const appContext = hvigor.getRootNode().getContext(OhosPluginId.OHOS_APP_PLUGIN) as OhosAppContext;
  // 获取工程级的build-profile.json5对应的obj对象
  const buildProfileOpt = appContext.getBuildProfileOpt();

  // 过滤出demo以外的模块
  const modules = buildProfileOpt.modules
  const filteredModules = modules.filter(module => !module.srcPath.includes("/demo/"));
  buildProfileOpt.modules = filteredModules;
  // 将obj对象设置回上下文对象以使能到构建的过程与结果中
  appContext.setBuildProfileOpt(buildProfileOpt);
});

export default {
  system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */
  plugins: []         /* Custom plugin to extend the functionality of Hvigor. */
}

基于此配置构建的APP包中就不会再包含demo中的模块了
在这里插入图片描述

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐