Added build_system.d and changed to --mode=development.

This commit is contained in:
Andrew Lalis 2022-05-08 20:04:21 +02:00
parent 74cf5736f0
commit e5165330d9
9 changed files with 59 additions and 13 deletions

3
.gitignore vendored
View File

@ -34,3 +34,6 @@ build/
*.mv.db
*.trace.db
src/main/resources/app
/build_system

41
build_system.d Executable file
View File

@ -0,0 +1,41 @@
#!/usr/bin/env dub
/+ dub.sdl:
dependency "dsh" version="~>1.6.1"
+/
/**
* This script will build the Rail Signal Vue app, then bundle it into this
* Spring project's files under src/main/resources/app/, and will then build
* this project into a jar file.
*/
module build_system;
import dsh;
const DIST = "./src/main/resources/app";
void main(string[] args) {
print("Building RailSignalAPI");
chdir("railsignal-app");
print("Building app...");
runOrQuit("npm run build");
print("Copying dist to %s", DIST);
chdir("..");
removeIfExists(DIST);
mkdir(DIST);
copyDir("railsignal-app/dist", DIST);
print("Building API...");
runOrQuit("mvn clean package spring-boot:repackage");
print("Build complete!");
if (args.length > 1 && args[1] == "run") {
string f = findFile("target", "^.+\\.jar$", false);
if (f == null) {
error("Could not find jar file!");
} else {
print("Running the program.");
run("java -jar " ~ f);
}
}
}

View File

@ -8,7 +8,7 @@ const DEST = "../src/main/resources/static";
void main() {
print("Deploying Vue app to Spring's /static directory.");
runOrQuit("npm run build");
runOrQuit("vite build --base=/app/");
rmdirRecurse(DEST);
copyDir("./dist", DEST);
}

View File

@ -17,10 +17,10 @@
"vue-router": "^4.0.14"
},
"devDependencies": {
"@vitejs/plugin-vue": "^2.3.1",
"@vitejs/plugin-vue": "^2.3.2",
"eslint": "^8.5.0",
"eslint-plugin-vue": "^8.2.0",
"vite": "^2.9.5"
"vite": "^2.9.8"
}
},
"node_modules/@babel/parser": {

View File

@ -3,7 +3,7 @@
"version": "0.0.0",
"scripts": {
"dev": "vite",
"build": "vite build",
"build": "vite build --base=/app/ --mode=development",
"preview": "vite preview --port 5050",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore"
},
@ -17,9 +17,9 @@
"vue-router": "^4.0.14"
},
"devDependencies": {
"@vitejs/plugin-vue": "^2.3.1",
"@vitejs/plugin-vue": "^2.3.2",
"eslint": "^8.5.0",
"eslint-plugin-vue": "^8.2.0",
"vite": "^2.9.5"
"vite": "^2.9.8"
}
}

View File

@ -35,7 +35,7 @@ export function drawComponent(ctx, worldTx, component) {
}
}
function drawSignal(ctx, signal) {
function drawSignal(ctx) {
roundedRect(ctx, -0.3, -0.5, 0.6, 1, 0.25);
ctx.fillStyle = "black";
ctx.fill();
@ -44,7 +44,7 @@ function drawSignal(ctx, signal) {
ctx.fill();
}
function drawSegmentBoundary(ctx, segmentBoundary) {
function drawSegmentBoundary(ctx) {
ctx.fillStyle = `rgb(150, 58, 224)`;
ctx.beginPath();
ctx.moveTo(0, -0.5);

View File

@ -4,8 +4,9 @@ import App from './App.vue'
import "bootstrap/dist/css/bootstrap.min.css";
import "bootstrap";
const app = createApp(App);
const pinia = createPinia();
const app = createApp(App);
app.use(pinia);
app.mount('#app')

View File

@ -5,10 +5,10 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping(path = "/")
@RequestMapping(path = {"/", "/app", "/home", "/index.html", "/index"})
public class IndexPageController {
@GetMapping
public String getIndex() {
return "index";
return "forward:/app/index.html";
}
}

View File

@ -11,8 +11,9 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**")
.addResourceLocations("classpath:/static/");
// Configure resource handlers to use the /app directory for all vue frontend stuff.
registry.addResourceHandler("/app/**")
.addResourceLocations("classpath:/app/");
}
@Override