add index redirect for dev server
This commit is contained in:
parent
998036e2a8
commit
69efdd1709
|
|
@ -1,8 +1,9 @@
|
||||||
import { readdirSync } from 'node:fs';
|
import { existsSync, readdirSync } from 'node:fs';
|
||||||
import { resolve } from 'node:path';
|
import { extname, join, resolve } from 'node:path';
|
||||||
import { defineConfig, IndexHtmlTransformContext, Plugin } from 'vite';
|
import { defineConfig, IndexHtmlTransformContext, Plugin } from 'vite';
|
||||||
import mkcert from 'vite-plugin-mkcert';
|
import mkcert from 'vite-plugin-mkcert';
|
||||||
|
|
||||||
|
const websiteDir = resolve(__dirname, './website');
|
||||||
const canvasWebsiteDir = resolve(__dirname, './website/canvas');
|
const canvasWebsiteDir = resolve(__dirname, './website/canvas');
|
||||||
|
|
||||||
function getCanvasFiles() {
|
function getCanvasFiles() {
|
||||||
|
|
@ -82,6 +83,19 @@ const linkGenerator = (): Plugin => {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const fallback = (rootDir: string): Plugin => ({
|
||||||
|
name: 'html-index-fallback',
|
||||||
|
configureServer(server) {
|
||||||
|
server.middlewares.use((req, res, next) => {
|
||||||
|
const url = req.originalUrl;
|
||||||
|
if (url && !extname(url) && existsSync(join(rootDir, `${url}/index.html`))) {
|
||||||
|
req.url += '/index.html';
|
||||||
|
}
|
||||||
|
next();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
root: 'website',
|
root: 'website',
|
||||||
resolve: {
|
resolve: {
|
||||||
|
|
@ -91,7 +105,7 @@ export default defineConfig({
|
||||||
'@propagators': resolve(__dirname, './propagators'),
|
'@propagators': resolve(__dirname, './propagators'),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
plugins: [linkGenerator(), mkcert()],
|
plugins: [fallback(websiteDir), linkGenerator(), mkcert()],
|
||||||
build: {
|
build: {
|
||||||
target: 'esnext',
|
target: 'esnext',
|
||||||
rollupOptions: {
|
rollupOptions: {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue