每次jhipster升级其版本时我都会遇到一个反复出现的问题 . 我的应用程序突然变为空白,为空白屏幕http://localhost:8080 . 当时我没有重新生成或重新运行 yo jhipster
. 编译没有错误消息就可以了 .
我通过运行jhipster的手动升级并再次重新生成所有内容来解决它(并且非常烦人) . 令人讨厌的部分是我需要查看每个文件的差异,因为我对一些生成的文件进行了一些修改 .
我的问题是:
-
如何在不对本地代码进行任何更改的情况下调用
mvnw
取决于互联网上发布的最新版本的jhipster? -
什么原因导致空白屏幕空白?
-
每次jhipster发布新版本时,是否需要重新生成我的应用程序?
谢谢 .
2 回答
空白屏通常意味着,有一些JS错误 . 您需要进入浏览器开发人员控制台才能获得错误 .
尽管我们的上一个版本修复了升级生成器,它已经破坏了所有4.0.X版本,但我没有尝试过 . 我还需要一个更好的升级流程,所以我只是手动执行升级生成器的步骤,这确实使事情变得更容易 . 以下是您总是可以去的方式:
转到要应用更新的分支 . 我将在我的例子中提到master
根据您的分支创建一个孤立分支,使用
git checkout --orphan upgrade-jhipster
. 孤立分支没有父修订版,因此在合并期间,与主服务器不同的每个文件都将以合并冲突结束 . 如果没有这个,您只需覆盖您的更改,因为升级中的任何更改都将晚于您的更改 .确保您运行的是最新的发电机 inside your project root . 请记住,JHipster会在生成后放置生成器的副本,以确保您可以使用生成应用程序的版本,即使您进行全局升级也是如此 .
运行
yo jhipster --with-entities --force
并将更改提交到upgrade-jhipster
分支现在
git checkout master
和git merge upgrade-jhipster
如果你使用可视化合并对话框执行某个工具的最后一步,例如IntelliJ,升级进度非常容易,并且不像yeoman那样烦人 .
根据您的更改的自定义方式,仍然无法保证这将导致无错误状态 . 但这正是升级生成器尝试做的事情 . 一个区别是,手动方法不会删除过时的文件,如升级生成器 . 但是我正在以这种方式升级我的自定义JHipster项目并且它运行良好
当您使用
./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