nick81nrw / PVTools

PV Tools
MIT License
30 stars 11 forks source link

Dokumentation wie man die Software selbst bauen kann #22

Open mayrstefan opened 10 months ago

mayrstefan commented 10 months ago

Leider konnte ich auf die schnelle nicht nachvollziehen wie man die Software lokal bauen kann.

Für das Backend ging das auf die schnelle mit dem Dockerfile. Allerdings scheint mir das auch nur ein Entwicklungsstand zu sein:

cd backend
docker build -t pv-backend:latest .
docker run -p 8082:8082 pv-backend:latest
# nach etwas warten für den Start
curl localhost:8082
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Error: ENOENT: no such file or directory, stat &#39;/pvtools/dist/index.html&#39;</pre>
</body>
</html>

Im Gegenzug funktioniert das frontend im pvtools-Ordner nicht mit NodeJS 14. Ein kurzer Versuch mit Version 21.4 zeigt eine Menge Deprecation-Warnings. Für welche NodeJS-Version ist die Software aktuell geeignet?

nick81nrw commented 10 months ago

Bei mir läuft die App aktuell unter Node 20.5.1. Die deprecated-warnungen sind leider korrekt, update muss ich bei gelegenheit machen. Ist vue 2/next, kenne mich aber selbst mit vue/next kaum aus. Initial hat das Frontend jemand anderes gemacht

Zum bauen: Terminal 1:

cd backend
npm i
npm start

Terminal 2:

cd pvtools
npm i
npm run dev

http://localhost:3000

mayrstefan commented 10 months ago

Der Code vom Backend enthält in https://github.com/nick81nrw/PVTools/blob/e5f11cb0a03bcb1a192685b130d2fb3dc1e1b7e7/backend/index.ts#L35-L39 einen Abschnitt der auch die statisch compilierte Version des Frontends ausliefern könnte wie es aussieht. Allerdings scheint er von der Verzeichnistiefe fehlerhaft (einmal ".." zu viel). Ist das so beabsichtigt und gehört nur korrigiert und dokumentiert oder ist das für die Anwendung eigentlich gar nicht vorgesehen?

nick81nrw commented 10 months ago

Der relative Pfad müsste passen. Allerdings ist es eigentlich auch quatsch static Files über node zu verteilen. Vielleicht auf nginx umbauen?

mayrstefan commented 10 months ago

Das mit der Pfadangabe habe ich inzwischen kapiert. Da es ja TypeScript ist landet das kompiliert in dem Unterordner "dist". Dann stimmen die Verzeichnisebenen wieder. Aber der Code kann ja damit rausfliegen. Dann kümmere ich mich mal darum, dass das Frontend in einem nginx-Docker-Container landet.

mayrstefan commented 10 months ago

Wofür gibt es die beiden Dateien https://github.com/nick81nrw/PVTools/blob/main/package.json und https://github.com/nick81nrw/PVTools/blob/main/package-lock.json im Hauptverzeichnis des Projekts? Das Frontend und das Backend haben ja jeweils eigene Dateien.