- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为我的组织创建一个自定义的 JHipster 蓝图。
我开始了我的旅程:
mkdir mygenerator && cd mygenerator
jhipster generate-blueprint
至此,我用VS Code打开生成的蓝图工程,发现第一个问题,部分jhipster包无法解析:
我还注意到为我创建的生成器与 JHipster Github 中现有的生成器有细微差别,例如 jhipster-dotnetcore , generator-jhipster-quarkus , generator-jhipster-nodejs : 返回的函数是 async
而在引用的 repos 中,它们是常规函数(同步):
get [INITIALIZING_PRIORITY]() {
return {
async initializingTemplateTask() {},
};
}
在这个 Jhipster 版本中有什么不同吗?或者如果我以与 jhipster-dotnetcore 相同的方式返回则没有问题。 :
get initializing() {
return {
...super._initializing(),
setupServerConsts() {
this.packagejs = packagejs;
...
我假设这个细节并不重要,然后是异步函数并写下我的 prompting
从用户/开发人员那里获取一些输入以替换模板文件中的值的函数:
get [PROMPTING_PRIORITY]() {
return {
...super._prompting(),
async promptingTemplateTask() {
const choices = [
{
name: 'OAuth 2.0 Protocol',
value: 'oauth2',
},
{
name: 'CAS Protocol',
value: 'cas',
},
];
const PROMPTS = {
type: 'list',
name: 'authenticationProtocol',
message: 'Which authentication protocol do you want to use?',
choices,
default: 'oauth2',
};
const done = this.async();
if (choices.length > 0) {
this.prompt(PROMPTS).then(prompt => {
this.authenticationProtocol = this.jhipsterConfig.authenticationProtocol = prompt.authenticationProtocol;
done();
});
} else {
done();
}
},
};
}
<%_ if (authenticationProtocol == 'oauth2') { _%>
security:
enable-csrf: true
oauth2:
client:
clientId: ${this.baseName}
clientSecret: Z3ByZXBmdGVy
accessTokenUri: http://localhost:8443/oauth2.0/accessToken
userAuthorizationUri: http://localhost:8443/oauth2.0/authorize
tokenName: oauth_token
authenticationScheme: query
clientAuthenticationScheme: form
logoutUri: http://localhost:8443/logout
clientSuccessUri: http://localhost:4200/#/login-success
resource:
userInfoUri: http://localhost:8443/oauth2.0/profile
<%_ } _%>
thymeleaf:
mode: HTML
templates/src/test/java/resources/config/application.yml.ejs
所有这一切都完成了,我已经完成了接下来的步骤:
npm link
在蓝图目录中。mkdir appmygenerator && cd appmygenerator
jhipster --blueprint mygenerator --skip-git --skip-install --skip-user-management --skip-client
回答所有问题。这里有一些惊喜:
What is the base name of your application?
后我收到此警告:[DEP0148] DeprecationWarning: Use of deprecated folder mapping "./lib/util/" in the "exports" field module resolution of the package at /...<my-generator-path>/node_modules/yeoman-environment/package.json. Update this package.json to use a subpath pattern like "./lib/util/*"
Do you want to make it reactive with Spring WebFlux?
直到 Which other technologies would you like to use?
.CAS Protocol Run-async wrapped function (sync) returned a promise but async() callback must be executed to resolve
我对提示功能做了一些更改:删除了 super._prompting()
的调用希望解决第 2 项,并删除了 async
希望解决第3项。
嗯……显然已经解决了。但是当 JHipster(或 Yeoman)尝试处理模板时我得到一个新错误:
An error occured while running jhipster:server#writeFiles
ERROR! /home/fabianorodrigo/Downloads/my-blueprint/generators/server/templates/src/test/resources/config/application.yml.ejs:47
45| favicon:
46| enabled: false
>> 47| <%_ if (authenticationProtocol == 'oauth2') { _%>
48| security:
49| enable-csrf: true
50| oauth2:
authenticationProtocol is not defined
为什么未定义 authenticationProtocol?我被困在这里了。我注意到的是,在我上面引用的所有 Jhipster 生成器中,提示函数设置属性,如“this.[property] = [value]”和“this.jhipsterConfig.[property] = [value] "并且在模板中引用了它们(只是属性的名称)并且它有效。
我错过了什么?为什么即使我在提示的函数中设置了属性“this.authenticationProtocol”,它也没有出现在模板中?
最佳答案
yeoman-test
是测试所必需的。无法解析模块路径
是 bug at eslint-plugin-import 我还注意到,为我创建的生成器与 JHipster Github 中现有的生成器(例如 jhipster-dotnetcore、generator-jhipster-quarkus、generator-jhipster-nodejs)有细微差别。
这些蓝图很旧(蓝图支持对于 v8/esm 的变化非常快)并且是完整的服务器/后端替代品,看来您正在尝试添加 cas
支持。用例完全不同。在这个 Jhipster 版本中是否有任何区别,或者如果我以与 jhipster-dotnetcore 相同的方式返回则没有问题?
是的,get [INITIALIZING_PRIORITY]()
是新的表示法,INITIALIZING_PRIORITY
可能是 >initializing
而不是 initializing
。解释是here . JHipster v8 将不支持旧的表示法。...super._prompting(),
用于询问原始提示,因为这是一个 side-by-side blueprint , 提示将被复制。[DEP0148] DeprecationWarning:使用已弃用的文件夹映射“./lib/util/”
是 yeoman 环境中的错误,应在下一版本中修复。CAS Protocol Run-async wrapped function (sync) returned a promise but async() callback must be executed to resolve
因为您正在使用带有 const done = this 的异步函数。异步(); done();
在一起。this.async()
是在 Promises 成为 js 默认值之前通过回调支持异步。有一些使用新符号的蓝图可以用作灵感:native , ionic , jooq和 entity-audit .
我没有看到任何关于写入优先级的信息,所以看起来您正在覆盖现有模板,而原始生成器将写入它。因此,您应该将配置注入(inject)原始生成器。
最终结果应该是这样的:
get [INITIALIZING_PRIORITY]() {
return {
async initializingTemplateTask() {
this.info('this blueprint adds support to cas authentication protocol');
},
};
}
get [PROMPTING_PRIORITY]() {
return {
async promptingTemplateTask() {
await this.prompt({
type: 'list',
name: 'authenticationProtocol',
message: 'Which authentication protocol do you want to use?',
choices: [
{
name: 'OAuth 2.0 Protocol',
value: 'oauth2',
},
{
name: 'CAS Protocol',
value: 'cas',
},
],
default: 'oauth2',
}, this.blueprintStorage); // <- `this.blueprintStorage` tells the prompt function to store the configuration inside `.yo-rc.json` at the blueprint namespace.
},
};
}
get [CONFIGURING_PRIORITY]() {
return {
configuringTemplateTask() {
// Store the default configuration
this.blueprintConfig.authenticationProtocol = this.blueprintConfig.authenticationProtocol || 'oauth2';
},
};
}
get [LOADING_PRIORITY]() {
return {
loadingTemplateTask() {
// Load the stored configuration, the prompt can be skipped so this needs to be in another priority.
this.authenticationProtocol = this.blueprintConfig.authenticationProtocol;
// Inject the configuration into the original generator. If you are writing the template by yourself, this may be not necessary.
this.options.jhipsterContext.authenticationProtocol = this.blueprintConfig.authenticationProtocol;
},
};
}
关于jhipster - 如何创建自定义蓝图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73705785/
我已经根据此链接安装了开箱即用的监控: http://www.jhipster.tech/monitoring/ 当我开始时: docker-compose up -d 一切都开始了,但 Elasta
我想将克隆的 ng-jhipster 项目配置为生成的 JHipster 应用程序的依赖项。 我正在使用以下版本(来自 jhipster 信息): git version 2.15.0 node:
最近,我一直在尝试为 JHipster 实现一个蓝图。我决定覆盖实体和实体服务器子生成器。每个子生成器都有多个阶段,我可以选择/完全覆盖/部分覆盖/不覆盖/。这些阶段是: /initializing(
在 Spring Boot 中,可以在 application.properties 文件中定义应用程序属性。例如,Rest 的前缀可以定义为 spring.data.rest.basePath=ap
是否可以为组织定制/扩展 JHipster? 我的意思是有一个本地版本,可以创建一些具有特定于组织的功能的项目?例如,使用自定义身份验证方案(仍然依赖于 Spring 安全性)、使用自定义样式(颜色、
我计划创建一个微服务应用程序,其中包含用于处理数据的专用服务(主要是基于 Mongodb 的服务)。我想知道是否有一种方法可以让我的其他微服务能够与此服务进行通信以利用共享数据。 JHipster A
我已经使用 yarn 安装了 jhipster-generator 版本 5.1.0。 今天,我需要卸载这个版本,以便从版本 5.1.0 降级到版本 5.0.1。 尝试时: yarn global r
我第一次尝试安装 jhipster 并且在设置方面已经出现问题:o 我正在按照“使用 Yarn 本地安装”(使用 Angular)的“安装 JHipster”页面上的步骤操作,该页面工作正常,但现在继
我在src/main/webapp/dist/img下有一些图片 我可以使用相对路径从我的 html 模板访问这些文件: 如果我将文件移动到子文件夹,我必须更新所有路径。 在 JHi
假设只有管理员可以创建新用户。 在管理 > 用户管理中有一个“创建新用户”按钮,但目前没有用。管理员无法设置密码和激活新用户。 我找到的唯一方法是: 退出 在主页上注册一个新帐户 以管理员身份再次登录
我正在尝试使用以下命令安装旧版本的 jhipster: sudo npm install -g generator-jhipster@3.2 或者 yarn global add generator-
有什么方法可以阻止 Jhipster 在生成后提交到我的本地存储库? 如果我导入新的 . jdl 或强制重新生成,Jhipster 会在未经我许可的情况下自动在我的本地存储库中提交新更改。请就此提出建
本文档中的“启用此功能时”是什么意思http://www.jhipster.tech/entities-filtering/引用? 我的 jdl 文件没问题(感谢最近的实现:https://githu
抱歉,如果这不是问这些问题的地方。但我只想知道是否... JHipster 可以去大规模应用吗? 是否可以最大限度地减少代码的生成,尤其是 UI 部分? 我可以扩展一些已经生成的 RestContro
我试图在我的自定义蓝图中覆盖模板 Entity.java.ejs 以添加一些额外的功能。不幸的是,如果生成实体,JHipster 使用其默认值。我不想覆盖整个写作。是否有可能仅覆盖某些模板并为其余部分
当我尝试在 jhipster 上创建一个新实体时,如果我选择添加一个类型枚举的字段,我会遇到这个问题: The entity Produit is being created. The entity
有人可以发布带有 angular 2 的 Jhipster 4.0 入门指南吗? 我不在乎它是否被释放。我只想用github上的最新代码生成代码并继续。 谢谢。 最佳答案 更新 - Deepu 在 g
我们使用了 jhipster 的微服务架构,生成了三个应用 哇, 微服务, 网关。 然后在服务器上运行 uaa 和 jhipster 注册表,我们还有一些全栈开发人员 希望同时开发网关和微服务的人。
在我们的项目中,我们使用域模型文档。一个文档可能有多个标题,所以根据我的 JPA 知识,我会像这样对 Document 实体进行建模: @Entity public class Document {
我需要复制一个 jhipster 项目。自从我创建了这个项目以来,我已经更新了 jhipster 版本。我想用第一个项目的相同 jhipster 版本复制项目。 我如何知道我的第一个应用程序使用的是哪
我是一名优秀的程序员,十分优秀!