Handle base urls nicely

This commit is contained in:
Matei Adriel 2023-10-29 06:28:40 +01:00
parent b7db1dfdb3
commit bfcad7a7c7
No known key found for this signature in database
4 changed files with 72 additions and 58 deletions

View file

@ -19,7 +19,7 @@ jobs:
- uses: DeterminateSystems/magic-nix-cache-action@main - uses: DeterminateSystems/magic-nix-cache-action@main
- name: Build project - name: Build project
run: nix build run: nix build .#erratic-gate-github-pages
- name: Upload artifact - name: Upload artifact
uses: actions/upload-pages-artifact@v2 uses: actions/upload-pages-artifact@v2

View file

@ -4,6 +4,9 @@ import { sassPlugin } from 'esbuild-sass-plugin'
import * as fs from 'fs' import * as fs from 'fs'
const serve = process.env.ESBUILD_SERVE === '1' const serve = process.env.ESBUILD_SERVE === '1'
const baseurl = process.env.ESBUILD_BASEURL
console.log(`Building with baseurl ${baseurl}`)
const ctx = await esbuild.context({ const ctx = await esbuild.context({
entryPoints: ['src/index.ts'], entryPoints: ['src/index.ts'],
@ -18,6 +21,9 @@ const ctx = await esbuild.context({
loader: { loader: {
'.svg': 'file' '.svg': 'file'
}, },
define: {
'process.env.BASEURL': JSON.stringify(baseurl)
},
plugins: [ plugins: [
htmlPlugin({ htmlPlugin({
files: [ files: [
@ -31,7 +37,8 @@ const ctx = await esbuild.context({
] ]
}), }),
sassPlugin({}) sassPlugin({})
] ],
publicPath: baseurl
}) })
if (serve) { if (serve) {
@ -41,4 +48,5 @@ if (serve) {
await ctx.rebuild() await ctx.rebuild()
await ctx.dispose() await ctx.dispose()
fs.cpSync('./dist/index.html', './dist/404.html') // Needed to please github pages fs.cpSync('./dist/index.html', './dist/404.html') // Needed to please github pages
console.log(`Project bundled successfully`)
} }

View file

@ -15,12 +15,18 @@
src = pkgs.lib.cleanSource ./.; src = pkgs.lib.cleanSource ./.;
npmDepsHash = "sha256-f5mw6IjkhZgsIuzCz9d7DvoAdceY1y+yWXn1BOonsVI="; npmDepsHash = "sha256-f5mw6IjkhZgsIuzCz9d7DvoAdceY1y+yWXn1BOonsVI=";
ESBUILD_BASEURL = "";
installPhase = '' installPhase = ''
mkdir $out mkdir $out
cp -r dist $out/www cp -r dist $out/www
''; '';
}; };
packages.erratic-gate-github-pages = packages.erratic-gate.overrideAttrs {
ESBUILD_BASEURL = "/erratic-gate";
};
packages.default = packages.erratic-gate; packages.default = packages.erratic-gate;
devShells.default = devShells.default =

View file

@ -26,7 +26,7 @@ const App = () => {
<CssBaseline /> <CssBaseline />
<Theme theme={muiTheme}> <Theme theme={muiTheme}>
<BrowserRouter> <BrowserRouter basename={process.env.BASEURL}>
<Sidebar /> <Sidebar />
<Route path="/" component={Root} exact /> <Route path="/" component={Root} exact />