我在客户端上有一个用Spring Boot和JS编写的应用程序。所有JS和CSS代码都存储在src/main/webapp
中,并使用Webpack编译到同一目录中。将编译后的 bundle 软件放在这里似乎很脏,但是我想知道是否有一种方法可以将其存储在构建目录中吗?
我设法使用build.gradle
中的下一个代码将其添加到war文件中
from("${buildDir}") {
include 'bundle.js'
}
但是我不知道如何在bootRun任务或Intellij Idea中达到相同的效果。
另外,如何排除存储在
src/main/webapp/js
和src/main/webapp/scss
中的源文件?以及存在哪些最佳实践来管理Web Assets ? 最佳答案
您可能应该看看Jhipster(http://jhipster.github.io/)
顺便说一句,对于我的项目,我显然更喜欢将客户端代码与服务器代码分开。 JS代码的“项目-客户端”目录,位于带有Java代码的“项目-服务器”目录旁边。
前一种显然具有“标准Java”文件结构。
对于第一个,JS现在具有自己的标准。好的,它们还不是很稳定;),但仍然如此。您的JS源代码可以占源代码的一半或更多,它的位置可能不在Java项目的子目录中。
而且,Webpack之类的工具非常强大。 Webpack可以在相关时嵌入样式,图像或其他资源。源文件/资源文件/构建产品文件应与Java项目中的文件一样清晰地分开。
开发时,请使用webpack服务器。我的index.html主机页面(由Java服务器提供)只是指向localhost:[webpack-port]/main.js
然后是全局构建的问题,可以通过Gradle轻松解决。 Gradle调用NPM(由于https://github.com/srs/gradle-node-plugin)来测试和构建JS部分,然后构建Java部分。最后,它将最终的jar和javascript文件复制到最终的全局构建目录中。 JS文件的名称-其中包含一个哈希,您应该保留该强大功能! -被赋予Java应用程序使用的conf文件。