首页 文章

JHipster:每次升级都是空白屏幕

提问于
浏览
1

每次jhipster升级其版本时我都会遇到一个反复出现的问题 . 我的应用程序突然变为空白,为空白屏幕http://localhost:8080 . 当时我没有重新生成或重新运行 yo jhipster . 编译没有错误消息就可以了 .

我通过运行jhipster的手动升级并再次重新生成所有内容来解决它(并且非常烦人) . 令人讨厌的部分是我需要查看每个文件的差异,因为我对一些生成的文件进行了一些修改 .

我的问题是:

  • 如何在不对本地代码进行任何更改的情况下调用 mvnw 取决于互联网上发布的最新版本的jhipster?

  • 什么原因导致空白屏幕空白?

  • 每次jhipster发布新版本时,是否需要重新生成我的应用程序?

谢谢 .

2 回答

  • 0

    空白屏通常意味着,有一些JS错误 . 您需要进入浏览器开发人员控制台才能获得错误 .

    尽管我们的上一个版本修复了升级生成器,它已经破坏了所有4.0.X版本,但我没有尝试过 . 我还需要一个更好的升级流程,所以我只是手动执行升级生成器的步骤,这确实使事情变得更容易 . 以下是您总是可以去的方式:

    • 转到要应用更新的分支 . 我将在我的例子中提到master

    • 根据您的分支创建一个孤立分支,使用 git checkout --orphan upgrade-jhipster . 孤立分支没有父修订版,因此在合并期间,与主服务器不同的每个文件都将以合并冲突结束 . 如果没有这个,您只需覆盖您的更改,因为升级中的任何更改都将晚于您的更改 .

    • 确保您运行的是最新的发电机 inside your project root . 请记住,JHipster会在生成后放置生成器的副本,以确保您可以使用生成应用程序的版本,即使您进行全局升级也是如此 .

    • 运行 yo jhipster --with-entities --force 并将更改提交到 upgrade-jhipster 分支

    • 现在 git checkout mastergit merge upgrade-jhipster

    如果你使用可视化合并对话框执行某个工具的最后一步,例如IntelliJ,升级进度非常容易,并且不像yeoman那样烦人 .

    根据您的更改的自定义方式,仍然无法保证这将导致无错误状态 . 但这正是升级生成器尝试做的事情 . 一个区别是,手动方法不会删除过时的文件,如升级生成器 . 但是我正在以这种方式升级我的自定义JHipster项目并且它运行良好

  • 0

    当您使用 ./mvnw 启动应用程序时,您将以开发模式启动应用程序,因此Web前端不是'web-packed'且无法提供服务 . 如果要以开发模式提供Web前端,建议的方法是执行此操作

    • ./mvnw

    • 在另一个终端 yarn start 中启动webpack dev服务器并将其连接到后端 .

    在节点模块已更改的升级之后,您可能必须首先键入 yarn 以确保导入所有依赖项 .

    或者,您可以先构建前端

    • yarn webpack:build

    • ./mvnw

    这样做的缺点是,每当前端发生变化时,您都必须重新进行webpack构建 . 如果您使用 yarn start 为前端服务,则不必这样做 .

    生产环境 构建将始终webpack前端 .

    我注意到的另一件事是JHipster的某些版本和选项似乎想要在 build 目录中构建Web前端而不是预期的 target 目录 . Web前端应该在 target/www/app 中 . 如果它在 yarn webpack:build 之后不存在则出现问题 . 最有可能是 ts.config ,其值应为 "outDir": "target/www/app" ,但可能还有其他地方 . 我之前必须纠正这个问题,然后搜索包含需要更改的 "build/www/app" 的行 .

    最后一个技巧是删除节点模块,删除目标目录(如果有目录,则删除构建目录)并执行以下操作:

    • yarn install && yarn webpack:build

    • ./mvnw

相关问题