我想在一个弹簧引导多模块应用程序中使用角4作为客户端框架。我的应用程序包含3个模块
角4根目录位于web模块中。
我可以使用"ng build“命令(在bootRun静态资源目录中编译角类型文件和复制结果文件)启动springBoot来执行应用程序。这是您的工作(顺便感谢您出色的教程https://www.youtube.com/watch?v=nHRA7cbL0vk)。
下面是我用来做这个的gradle脚本:
task buildClientDev(type: NpmTask, dependsOn: 'npmInstall') {
group = 'build'
description = 'Compile client side folder for development'
args = ['run','buildDev']
}
task buildClientWatch(type: NpmTask, dependsOn: 'npmInstall'){
group = 'application'
description = "Build and watches the client side assets for rebuilding"
args = ['run','buildWatch']
}
bootRun{
doFirst {
tasks.buildClientDev.execute()
}
}这样做的问题是,当我修改一个bootRun文件(生成js文件)时,我必须重新运行TypeScript。我希望这一代人能够自动完成任务。所以我想调用tasks.buildClientWatch.execute(),它执行一个"ng build watch=true“。但是当我这样做时,springBoot应用程序无法启动。当我使用doLast而不是doFirst时,我的Springboot应用程序启动良好,但是doLast中的gradle调用既没有执行,也没有执行。
那么,如何同时运行springBoot bootRun命令和执行ng build watch=true呢?
发布于 2021-01-19 17:03:31
经过3年的开发应用,我认为在这种情况下最好的做法是把前端和后端完全分开。
所以我可以为我的角前端应用程序创建一个npm或gradle项目。对于后端,我可以创建我喜欢的微服务和模块。我认为这是目前最好的模式。
发布于 2018-03-30 09:48:08
我建议直接使用无分级的npm (就像我这样做时没有任何问题)。大多数IDE也以组合构建/启动组的方式支持这一点。
https://stackoverflow.com/questions/45448772
复制相似问题