我使用了那些关于spring开发工具和热重载的文档
https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html#using-boot-devtools-restart-exclude
根据这一点,可以看到有这样的可能性热重载java和支持React/Typescript/webpack应用程序
这是我们的架构(在捷径)
mainmodule
backendModules <- those modules are just maven project have theirs poms and etc
backendModule1
backendModule2
fontendModule
content <- React/Typescript/Webpack/Less etc
backendModule 2-我们用来启动后端backendModule 1-只是一些额外的服务fontendModule/content -是我们整个react应用程序
如果我说要重新加载前端文件,我必须:
1.配置Intellij,就像我通常为后端做的那样〈-这很容易
1a.变更登记
1b.自动选择生成项目
我的问题是我必须做什么来强制重新加载前端文件-所以开发人员只需要运行1个应用程序,然后后端+前端将自动重新加载
1.向资源模式添加前端扩展(Intellij:Build,execution -〉compiler)?jsx,json,js,less等等?
1.根据文档添加“spring.devtools.restart.additional-paths”
有没有人能做到这一点?我们没有得到任何错误等...
如果有什么不清楚的地方请告诉我,这样我们就可以澄清了
2条答案
按热度按时间ruyhziif1#
对于React,您可以使用React Preset安装Babel CLI,并在
--watch
模式下运行Babel。它会不断将JSX转换为JavaScript,如果您安装了Spring DevTools,则在IDE中运行时,在重新加载网页后会立即看到新信息。我已经在No-Fuss React and JSX with Spring Boot上写了一个完整的教程,但这里是它的要点:
我的文章深入讨论了如何将其透明地集成到Maven构建中,以及如何构建HTML,以便您不需要Webpack或Maven以外的任何更大的前端构建系统。
svmlkihl2#
我知道有两种不同的方法可以做到这一点。
1)使用Intellij文件监视器插件
2)运行webpack dev server作为spring-boot应用程序的反向代理
(1)
现在,如果您在定义的范围内保存文件,webpack任务将运行。之后,您必须在浏览器中刷新页面。从https://intellij-support.jetbrains.com获得的想法
2)这种方式更高级,但更难正确配置。你将有自动重新加载(页面刷新)和完全热重新加载(React状态持续)
基本的想法是运行一个webpack-dev-server,并将该服务器用作spring-boot后端的反向代理。dev-server将自己处理对热重载内容的请求,并将其他所有内容传递给后端。从https://www.codingbismuth.com/获得的想法。
作为示例配置
spring Boot 应用程序运行在:8087上,webpack dev服务器运行在:8888上。现在在index.html中包含mainbundle.js。运行spring-boot应用程序并在第二个终端运行:
访问网页:8888有热重新加载文件的变化。