首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建JHipster蓝图以扩展字段类型提示符

问创建JHipster蓝图以扩展字段类型提示符
EN

Stack Overflow用户
提问于 2019-07-10 13:06:04
回答 1查看 704关注 0票数 0

我已经创建了一个有效的测试蓝图,所以我有了一些想法,但我想确保我正在正确地处理这个问题。

我想要扩展字段类型提示符,以提供自定义类型与字符串,int,布尔等。

这意味着我需要修改模板,比如templates/src/main/java/package/domain/Entity.java.ejs

我的蓝图只有生成器/客户端和生成器/实体-客户端,所以我想我必须:

对于模板,我可以从JHipster回购中复制它们吗?我应该吗?若否,原因为何,还有甚麽选择呢?

如果抄袭是正确的做法,我必须复制所有的东西吗?还是我想修改的那些?(我还没有检查是否需要修改所有内容)

当JHipster被更新时,我想要么我手动合并新文件,要么我的代码会慢慢地与JHipster代码有越来越大的不同?

是否有更简单的方法来达到我想要做的事情?如果我只想将TypeX和TypeY添加到该提示符中,并提供仅涵盖这些类型的有限模板(例如导入模板、字段模板、setter和getter模板),如果只提供导入,则使用泛型模板,这将是一件好事。

EN

回答 1

Stack Overflow用户

发布于 2019-07-10 14:12:06

我会尽力回答你所有的问题。首先,为了创建蓝图,我建议即使在另一个文件夹中也使用https://github.com/jhipster/generator-jhipster-blueprint,并复制当前项目所需的所有内容。我认为这更容易,您可以选择要添加哪个生成器,例如实体-服务器和实体。

质子相位

如果您想修改提示阶段,您可以像这样将您的阶段与JHipster阶段合并。

代码语言:javascript
复制
get prompting() {
        const phaseFromJHipster = super._prompting();
        const phaseFromMe = {
            askForTheme: prompts.askForTheme,
            setMySharedConfigOptions() {
                this.configOptions.theme = this.theme;
            }
        };

        return { ...phaseFromJHipster, ...phaseFromMe };
    }

(资料来源:https://github.com/avdev4j/samSuffit/tree/master/generators/client)

但是通过这样做,您不能修改现有的问题,在这种情况下,您应该将所有现有的问题复制到您的蓝图中。

模板管理

您的蓝图与JHipster版本相关联。正如我曾经说过的(在我的演讲中),除了配置文件之外,您应该从JHipster中复制和修改模板,因为处理它有点棘手。对于他们,我更喜欢使用JHipster API,比如'replaceContent()‘或者针头API,后者允许您将一些代码插入到某些文件中(比如pom.xml文件中的一个依赖项)。当然,您可以使用您想要的方式,但是根据经验,我更喜欢在升级JHipster版本时控制我的模板并合并它们。

您应该只复制要修改的模板、合并JHipster和编写阶段。JHipster使用yeoman,它使用memfs来处理文件生成。每个文件都在内存中创建,并在最后一步转储。您可以轻松地覆盖一个文件,而不会影响性能。

代码语言:javascript
复制
    get writing() {
        const phaseFromJHipster = super._writing();
        /* eslint-disable */
        const phaseFromSam = {
            writeSamFiles() {
                if (this.clientFramework === 'angularX') {
                    return writeAngularFiles.call(this);
                }
            }
        };
        /* eslint-enable */

        return { ...phaseFromJHipster, ...phaseFromSam };
    }

JHipster升级

我建议您在升级JHipster时检查模板,并在需要时应用修改。否则你可能会有虫子。此外,我建议在您的蓝图JHipster中设置一个最终版本(如6.1.0) package.json。

据我所知,没有办法做你想做的事。我正在考虑一种方法,可以轻松地修改提示,而无需复制所有其他问题,如果您想要贡献的话;)。

您可以查看我在演讲中所用的蓝图示例:https://github.com/avdev4j/samSuffit/

我希望它能帮到你,可以自由的要求更多。

打招呼,

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56971375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档