当前位置: 首页 > wzjs >正文

网站怎样排名靠前如何进行搜索引擎优化 简答案

网站怎样排名靠前,如何进行搜索引擎优化 简答案,长沙网络公司营销方案,哪个网站做h5比较好看目录 1 -> 通过hook以及插件上下文实现动态配置 2 -> 在hvigorfile.ts中通过overrides关键字导出动态配置 3 -> 通过hook以及插件上下文动态配置构建配置 3.1 -> 修改每个hvigorNode中的build-profile.json5 3.2 -> 修改module.json5中的配置信息 3.3 -&g…

目录

1 -> 通过hook以及插件上下文实现动态配置

2 -> 在hvigorfile.ts中通过overrides关键字导出动态配置

3 -> 通过hook以及插件上下文动态配置构建配置

3.1 -> 修改每个hvigorNode中的build-profile.json5

3.2 -> 修改module.json5中的配置信息

3.3 -> 修改app.json5中的配置信息

3.4 -> 修改oh-package.json5中的依赖


1 -> 通过hook以及插件上下文实现动态配置

Hvigor支持stage模型在hvigor hook中操作从硬盘上读取的以下配置文件:

  • 每个hvigorNode中的build-profile.json5
  • module.json5
  • app.json5
  • 每个module下的oh-package.json5文件中的dependency、devDependency、dynamicDependency以及version。

目前可以通过hvigor对象提供的上下文直接获取和修改配置以实现动态配置构建配置、并使能到构建的过程与结果中。

在hvigorfile.ts或hvigorconfig.ts文件中,可以使用Hvigor提供的API接口来实现此能力。

相比于下面的overrides的能力来说,通过hook以及插件上下文来动态修改签名和编译配置更为灵活和易于理解,功能也更为全面,推荐使用此种方式。

2 -> 在hvigorfile.ts中通过overrides关键字导出动态配置

在hvigorfile.ts中,我们约定在导出的对象中的config.ohos属性里接收编译的配置:

export default {  system: hapTasks,  config: {  ohos: {...}    }
}

目前可以在工程级的hvigorfile.ts的config.ohos中配置的字段:

  • overrides:定义起覆盖作用的字段的位置,会在构建过程中覆盖原有的对应配置项。
    • signingConfig:签名配置,对应build-profile.json5里的signingConfig配置项。
      • type
      • material
        • certpath
        • storePassword
        • keyAlias
        • keyPassword
        • profile
        • signAlg
        • storeFile
    • appOpt:对应​​​​​​​app.json5里的配置项字段。
      • bundleName
      • bundleType
      • icon
      • label
      • vendor
      • versionCode
      • versionName

目前可以在模块级的hvigorfile.ts的config.ohos中配置的字段:

  • overrides:定义起覆盖作用的字段的位置,会在构建过程中覆盖原有的对应配置项。
    • buildOption:对应build-profile.json5里的​​​​​​​buildOption配置项。
      • arkOptions
      • externalNativeOptions
      • napiLibFilterOption
      • nativeLib
      • resOptions
      • sourceOption

配置在overrides项中的参数,其优先级会高于在配置项中的对应字段。

3 -> 通过hook以及插件上下文动态配置构建配置

3.1 -> 修改每个hvigorNode中的build-profile.json5

此处只举例为单个node注册hook并修改build-profile.json5的信息。

例如需要修改根目录下的build-profile.json5的签名信息,则在项目根目录下的hvigorfile.ts中添加如下内容:

import { appTasks, OhosAppContext, OhosPluginId } from '@ohos/hvigor-ohos-plugin';
import { hvigor,getNode } from '@ohos/hvigor'// 获取根节点
const rootNode = getNode(__filename);
// 为根节点添加一个afterNodeEvaluate hook 在hook中修改根目录下的build-profile.json5的内容并使能
rootNode.afterNodeEvaluate(node => {// 获取app插件的上下文对象const appContext = node.getContext(OhosPluginId.OHOS_APP_PLUGIN) as OhosAppContext;// 通过上下文对象获取从根目录build-profile.json5文件中读出来的obj对象const buildProfileOpt = appContext.getBuildProfileOpt();// 修改obj对象为想要的,此处举例修改app中的signingConfigsbuildProfileOpt['app']['signingConfigs'] = [{"name": "default","type": "HarmonyOS","material": {"certpath": "D:\\SigningConfig\\debug_hos.cer","storePassword": "******","keyAlias": "debugKey","keyPassword": "******","profile": "D:\\SigningConfig\\debug_hos.p7b","signAlg": "SHA256withECDSA","storeFile": "D:\\SigningConfig\\debug_hos.p12"}}];// 将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. */
}

3.2 -> 修改module.json5中的配置信息

可以通过hvigor对象的hook能力快捷为所有的node创建hook,此处先举例为单一的node创建一个hook并修改其中的module.json5的配置信息。

例如此处需要修改entry下的module.json5配置,则在entry下的hvigorfile.ts中添加如下内容:

import { hapTasks, OhosHapContext, OhosPluginId } from '@ohos/hvigor-ohos-plugin';
import { getNode } from '@ohos/hvigor'const entryNode = getNode(__filename);
// 为此节点添加一个afterNodeEvaluate hook 在hook中修改module.json5的内容并使能
entryNode.afterNodeEvaluate(node => {// 获取此节点使用插件的上下文对象 此时为hap插件 获取hap插件上下文对象const hapContext = node.getContext(OhosPluginId.OHOS_HAP_PLUGIN) as OhosHapContext;// 通过上下文对象获取从module.json5文件中读出来的obj对象const moduleJsonOpt = hapContext.getModuleJsonOpt();// 修改obj对象为想要的,此处举例修改module中的deviceTypesmoduleJsonOpt['module']['deviceTypes'] = ["phone", "tablet", "2in1", "car"];// 将obj对象设置回上下文对象以使能到构建的过程与结果中hapContext.setModuleJsonOpt(moduleJsonOpt);
})
export default {system: hapTasks,  /* Built-in plugin of Hvigor. It cannot be modified. */plugins:[]         /* Custom plugin to extend the functionality of Hvigor. */
}

3.3 -> 修改app.json5中的配置信息

在项目的根目录下的hvigorfile.ts中添加如下代码内容:

import { appTasks, OhosAppContext, OhosPluginId } from '@ohos/hvigor-ohos-plugin';
import { hvigor } from '@ohos/hvigor'// 为根节点添加一个afterNodeEvaluate hook 在hook中修改app.json5的内容并使能
hvigor.getRootNode().afterNodeEvaluate(rootNode => {// 获取app插件的上下文对象const appContext = rootNode.getContext(OhosPluginId.OHOS_APP_PLUGIN) as OhosAppContext;// 通过上下文对象获取从app.json5文件中读出来的obj对象const appJsonOpt = appContext.getAppJsonOpt();// 修改obj对象为想要的,此处举例修改app中的versionCodeappJsonOpt['app']['versionCode'] = 1000001;// 将obj对象设置回上下文对象以使能到构建的过程与结果中appContext.setAppJsonOpt(appJsonOpt);
})
export default {system: appTasks,  /* Built-in plugin of Hvigor. It cannot be modified. */plugins:[]         /* Custom plugin to extend the functionality of Hvigor. */
}

3.4 -> 修改oh-package.json5中的依赖

可以通过hvigorfile.ts自定义插件修改工程级、模块级的oh-package.json5的依赖,例如在工程级hvigorfile.ts或模块级hvigorfile.ts分别添加以下内容:

// 工程级hvigorfile.ts
import { appTasks, OhosAppContext, OhosPluginId, Target } from '@ohos/hvigor-ohos-plugin';
import { HvigorNode, HvigorPlugin, TaskInput, TaskOutput } from '@ohos/hvigor';
export function customPlugin(): HvigorPlugin {return {pluginId: 'customPlugin',async apply(currentNode: HvigorNode): Promise<void> {const appContext = currentNode.getContext(OhosPluginId.OHOS_APP_PLUGIN) as OhosAppContext;const dependency = appContext.getDependenciesOpt({});  //获取dependency依赖dependency["library"]="file:library.har"console.log(dependency);appContext.setDependenciesOpt(dependency );  //修改dependency依赖}};
}
export default {system: appTasks,  /* Built-in plugin of Hvigor. It cannot be modified. */plugins:[customPlugin()]         /* Custom plugin to extend the functionality of Hvigor. */
}// 模块级hvigorfile.ts
import {hapTasks,OhosHapContext,OhosPluginId,Target} from '@ohos/hvigor-ohos-plugin';
import { hvigor, HvigorNode, HvigorPlugin} from '@ohos/hvigor';
import * as fs from 'fs';
export function customPlugin(options: OnlineSignOptions): HvigorPlugin {return {pluginId: 'customPlugin',context() {return {signConfig: options};},async apply(currentNode: HvigorNode): Promise<void> {const hapContext = currentNode.getContext(OhosPluginId.OHOS_HAP_PLUGIN) as OhosHapContext;const dependency = hapContext.getDependenciesOpt();//获取dependency依赖dependency["library"]="file:library.har"hapContext.setDependenciesOpt(dependency);}}};
export default {system: hapTasks,  /* Built-in plugin of Hvigor. It cannot be modified. */plugins:[customPlugin()]         /* Custom plugin to extend the functionality of Hvigor. */
}

感谢各位大佬支持!!!

互三啦!!!

http://www.dtcms.com/wzjs/199608.html

相关文章:

  • 北京外贸网站制作公司网站怎么接广告
  • 学校网站建设目标营销是做什么
  • ui设计一个页面多少价格合适seo优化网站推广
  • 门户网站怎么做seo短视频seo排名
  • 网站备案要拍照大家怎么做的啊百度邮箱登录入口
  • 免费 网站 空间seo推广软件排行榜前十名
  • wordpress转发微信搜索引擎优化的各种方法
  • 南宁制作网站多少钱网站关键词优化建议
  • 网站开发外包方案广州最新疫情通报
  • 大气网站模板免费下载谷歌浏览器网页版入口手机版
  • 烟台优化网站建设中国职业培训在线
  • 门头沟青岛网站建设西安seo全网营销
  • 成都快速做网站网络推广运营外包公司
  • 建设农家书屋官方网站合肥正规的seo公司
  • 政府网站管理推进集约建设东莞百度快照优化排名
  • 做赌博网站犯法吗百度平台商家客服
  • 中铁建设集团企业门户上海快速优化排名
  • 电商模板哪个网站好2024年8月爆发新的大流行病毒吗
  • php做网站都需要学什么永久免费wap自助建站
  • 网站设计一般包括哪几个部分深圳网站搜索优化工具
  • 如何在网上建立网站搜百度盘
  • 北京网站建设排行关键词排名查询工具有什么作用?
  • 济宁祥云网站建设百度seo排名查询
  • 新河镇网站制作网站优化的关键词
  • 静态网页文件合肥网站推广优化公司
  • xyz后缀的网站摘抄一则新闻
  • 房地产网站推广怎样建立自己的网站平台
  • 网站系统怎么建设百度推广方式有哪些
  • 网页制作师招聘武汉seo创造者
  • 上海网站建设哪个平台好seo关键词排名价格