You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jhipster Blueprint无法覆盖优先级,addEntityToMenu重复执行问题

JHipster Blueprint自定义addEntityToMenu函数重复执行问题

问题背景

我需要自定义addEntityToMenu函数,因此创建了包含entities-client子生成器的Blueprint,通过覆盖POST_WRITING_PRIORITY钩子来自定义相关逻辑。我的目标是生成自定义MenuItem,并将其添加到entities/Menu.tsx文件中(该文件通过jhipster-needle-add-entity-to-menu标记插入实体链接项)。

实现代码

我的generate.mjs核心代码如下:

// generate.mjs
const files = import('myCustom.cjs');
// ...
get [POST_WRITING_PRIORITY]() {
  return {
    async addToMenu() {
      if (this.skipClient) return undefined;
      return (await files).addToMenu.call(this);
    }
  };
}

官方原生addToMenu函数生成的是标准React组件,而我的自定义函数生成的是如下格式的对象:

{"label":"<a href=\"/movie\" target=\"_blank\" rel=\"noopener noreferrer\">\nMovie\n</a>","key":"movie"},

我已经修改了Menu.tsx来适配这个自定义格式,但执行以下命令后:

jhipster jdl app.jdl --blueprints generator-jhipster-my-custom

Menu.tsx中出现了重复的内容,同时包含官方原生生成的MenuItem和我的自定义输出:

<MenuItem icon="asterisk" to="/movie">
<Translate contentKey="global.menu.entities.movie" />
</MenuItem>
{"label":<ahref=\"/movie\"target=\"_blank\"rel=\"noreferrer\">\nMovie\n</a>","key":"movie"},

显然addEntitiesToMenu逻辑执行了两次,一次来自官方generator-jhipster,一次来自我的自定义Blueprint。我尝试通过覆盖方法来避免重复,但找不到问题根源,请问问题出在哪里?

补充:完整代码可查看对应仓库的指定分支


内容的提问来源于stack exchange,提问作者dungreact

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 09:55:24