refactor to package the Vue components into the JAR instead of copying files around

This commit is contained in:
Tom Hombergs
2020-07-26 20:55:39 +10:00
parent 44fe1a4945
commit c35f171d32
5 changed files with 27 additions and 19 deletions

View File

@@ -2,8 +2,28 @@ plugins {
id "com.github.node-gradle.node" version "2.2.4"
}
task build(type: NpmTask) {
apply plugin: 'java'
group = 'io.reflectoring'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
task npmBuild(type: NpmTask) {
inputs.dir("src")
outputs.dir("dist")
args = ['run', 'build']
}
}
task npmClean(type: NpmTask) {
args = ['run', 'clean']
}
jar {
into '/static', {
from 'dist'
include '**/*.umd.min.js'
}
}
jar.dependsOn('npmBuild')
clean.dependsOn('npmClean')

View File

@@ -5,6 +5,7 @@
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build --target lib --dest dist/WeekChart --name WeekChart src/components/WeekChart.vue",
"clean": "rm -rf dist",
"lint": "vue-cli-service lint",
"storybook": "start-storybook -p 6006",
"build-storybook": "build-storybook",

View File

@@ -6,14 +6,14 @@ plugins {
group = 'io.reflectoring'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
sourceCompatibility = '11'
repositories {
mavenCentral()
}
dependencies {
project(':client')
implementation project(':client')
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
@@ -24,16 +24,3 @@ dependencies {
test {
useJUnitPlatform()
}
task copyJavascriptComponents(type: Copy) {
from '../client/dist'
include '**/*.umd.min.js'
into 'src/main/resources/static/js/vue-components'
}
task cleanJavascriptComponents(type: Delete) {
delete 'src/main/resources/static/js/vue-components'
}
processResources.dependsOn copyJavascriptComponents
clean.dependsOn cleanJavascriptComponents

View File

@@ -11,7 +11,7 @@ import java.util.Map;
@Controller
class HelloVueController {
@GetMapping("/hello")
@GetMapping("/")
ModelAndView showHelloPage() {
Map<String, Object> model = new HashMap<>();
model.put("title", "Hello Vue!");

View File

@@ -8,7 +8,7 @@
</div>
<script src="https://unpkg.com/vue"></script>
<script th:src="@{/js/vue-components/WeekChart/WeekChart.umd.min.js}"></script>
<script th:src="@{/WeekChart/WeekChart.umd.min.js}"></script>
<script>
(function() {
new Vue({