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

时间:2017-03-25 05:02:10

标签: jhipster

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

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

我的问题是:

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

  2. 导致空白屏幕的原因是什么?

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

  4. 感谢。

2 个答案:

答案 0 :(得分:0)

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

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

  1. 转到要应用更新的分支。我将在我的例子中引用master
  2. 使用git checkout --orphan upgrade-jhipster根据您的分支创建一个孤立分支。孤立分支没有父修订版,因此在合并期间,与主服务器不同的每个文件都将以合并冲突结束。如果没有这个,您只需覆盖您的更改,因为升级中的任何更改都将晚于您的更改。
  3. 确保您在项目根目录中运行最新的生成器。请记住,JHipster会在生成后放置生成器的副本,以确保您可以使用生成应用程序的版本,即使您进行全局升级也是如此。
  4. 运行yo jhipster --with-entities --force并将更改提交到upgrade-jhipster分支
  5. 现在git checkout mastergit merge upgrade-jhipster
  6. 如果你使用可视化合并对话框执行某个工具的最后一步,例如IntelliJ,升级过程非常方便,并且不像yeoman那样烦人。

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

答案 1 :(得分:0)

使用./mvnw启动应用程序时,您将以开发人员模式启动该应用程序,因此Web前端不是“网络打包”的,因此无法提供服务。如果您想以开发人员模式提供Web前端服务,建议的方法是

  1. ./mvnw
  2. 在另一个终端yarn start中,这将启动webpack开发服务器并将其连接到后端。

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

或者,您可以先构建前端

  1. yarn webpack:build
  2. ./mvnw

这样做的缺点是,每当前端发生任何更改时,您都必须重新执行webpack构建。如果您使用yarn start服务前端,则不必这么做。

生产版本将始终对前端进行Webpack。

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

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

  1. yarn install && yarn webpack:build
  2. ./mvnw