diff --git a/.gitignore b/.gitignore index a9a5aec..b313bd4 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ tmp +server diff --git a/Makefile b/Makefile index 82a2a8b..11bcc55 100644 --- a/Makefile +++ b/Makefile @@ -5,13 +5,56 @@ nil: reactNextJS/out/*: reactNextJS/app/* reactNextJS/*.js reactNextJS/*.json cd reactNextJS && npm install && npm run build nextjs: reactNextJS/out/* -serverdeps: nextjs *.go reactNextJS/addToServer.go -build: serverdeps +vuejs/dist/*: vuejs/src/* + cd vuejs && npm install && npm run build +vuejs: vuejs/dist/* + +svelte/dist/*: svelte/src/* + cd svelte && npm install && npm run build +svelte: svelte/dist/* + + +cleanbuild: + rm -r tmp/build +tmp/build: cleanbuild + mkdir -p tmp/build +tmp/build/vanillaJS: tmp/build vanillaJS/index.html + mkdir tmp/build/vanillaJS && \ + cp ./vanillaJS/index.html ./tmp/build/vanillaJS +tmp/build/react: tmp/build react/index.html + mkdir tmp/build/react && \ + cp ./react/index.html ./tmp/build/react/ +tmp/build/alpinejs: alpinejs/index.html + mkdir tmp/build/alpinejs && \ + cp ./alpinejs/index.html ./tmp/build/alpinejs +tmp/build/_next: tmp/build reactNextJS/out/_next + mkdir ./tmp/build/_next && \ + cp -r ./reactNextJS/out/_next ./tmp/build/ +tmp/build/reactNextJS: tmp/build reactNextJS/out/*.* + mkdir ./tmp/build/reactNextJS && \ + cp ./reactNextJS/out/*.* ./tmp/build/reactNextJS/ +tmp/build/assets: tmp/build svelte/dist/assets vuejs/dist/assets + mkdir tmp/build/assets && \ + cp svelte/dist/assets/* tmp/build/assets/ && \ + cp vuejs/dist/assets/* tmp/build/assets/ +tmp/build/vuejs: tmp/build vuejs/dist/*.* + mkdir ./tmp/build/vuejs && \ + cp ./vuejs/dist/*.* ./tmp/build/vuejs/ +tmp/build/svelte: tmp/build svelte/dist/*.* + mkdir ./tmp/build/svelte && \ + cp -r ./svelte/dist/* ./tmp/build/svelte/ +tmp/build/index.html: tmp/build index.html + cp index.html tmp/build/ + +web: tmp/build/assets tmp/build/vanillaJS tmp/build/react tmp/build/alpinejs tmp/build/_next tmp/build/reactNextJS tmp/build/assets tmp/build/vuejs tmp/build/svelte tmp/build/index.html +build: web go build server.go -run: serverdeps +run: web go run server.go -air: nextjs nil +air: nextjs nil web air server.go +clean: + rm -r tmp -.PHONY: all build nextjs serverdeps run air nil +.PHONY: all build clean cleanbuild nextjs vuejs svelte run air nil web diff --git a/index.html b/index.html index 831339b..a91f3d4 100644 --- a/index.html +++ b/index.html @@ -2,8 +2,12 @@

Frontends

diff --git a/reactNextJS/addToServer.go b/reactNextJS/addToServer.go deleted file mode 100644 index 5be7496..0000000 --- a/reactNextJS/addToServer.go +++ /dev/null @@ -1,28 +0,0 @@ -package reactNextJS - -import ( - "embed" - "fmt" - "io/fs" - "net/http" -) - -//go:embed "out/*" -var nextFiles embed.FS - -//go:embed "out/_next" -var nextScripts embed.FS - -// Call this from main once before starting the server -func AddNextStaticClient() { - scriptsSubFolder, err := fs.Sub(nextScripts, "out") - if err != nil { - panic(fmt.Sprint("Error: Could not find \"reactNextJS/out/\". Did you build the reactNextJS client?")) - } - filesSubFolder, _ := fs.Sub(nextFiles, "out") - var nextScriptsServer = http.FileServerFS(scriptsSubFolder) - var nextFilesServer = http.FileServerFS(filesSubFolder) - - http.Handle("/reactNextJS/", http.StripPrefix("/reactNextJS/", nextFilesServer)) - http.Handle("/_next/", nextScriptsServer) -} diff --git a/server.go b/server.go index d2d7431..652b8bc 100644 --- a/server.go +++ b/server.go @@ -3,32 +3,23 @@ package main import ( "embed" "fmt" - "frontends/reactNextJS" + "io/fs" "net/http" ) const PORT = 3003 -//go:embed "vanillaJS" -var vanillaJS embed.FS - -//go:embed "react" -var react embed.FS - -//go:embed "reactNextJS/out" -var nextStatic embed.FS - -//go:embed "alpinejs" -var alpinejs embed.FS +//go:embed "all:tmp/build" +var webfs embed.FS func main() { + webfs, err := fs.Sub(webfs, "tmp/build") + if err != nil { + panic(fmt.Sprintf("Error embeding web files: %s\nTry running \"make web\"", err)) + } + http.Handle("/", http.FileServerFS(webfs)) - http.Handle("/vanillaJS/", http.FileServerFS(vanillaJS)) - http.Handle("/react/", http.FileServerFS(react)) - http.Handle("/alpinejs/", http.FileServerFS(alpinejs)) - reactNextJS.AddNextStaticClient() - - err := http.ListenAndServe(fmt.Sprintf(":%d", PORT), nil) + err = http.ListenAndServe(fmt.Sprintf(":%d", PORT), nil) if err != nil { panic(fmt.Sprintf("Error starting server: %s", err)) }