feat: use vite

This commit is contained in:
ckt1031
2023-07-08 14:58:42 +08:00
parent 2756554f7c
commit 37d7afcedc
3 changed files with 56 additions and 9 deletions

44
web/vite.config.js Normal file
View File

@@ -0,0 +1,44 @@
import fs from "node:fs";
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import * as esbuild from "esbuild";
const sourceJSPattern = /\/src\/.*\.js$/;
const rollupPlugin = (matchers) => ({
name: "js-in-jsx",
load(id) {
if (matchers.some(matcher => matcher.test(id))) {
const file = fs.readFileSync(id, { encoding: "utf-8" });
return esbuild.transformSync(file, { loader: "jsx" });
}
}
});
export default defineConfig({
plugins: [
react()
],
build: {
outDir: "./build",
rollupOptions: {
plugins: [
rollupPlugin([sourceJSPattern])
],
},
commonjsOptions: {
transformMixedEsModules: true,
},
},
optimizeDeps: {
esbuildOptions: {
loader: {
".js": "jsx",
},
},
},
esbuild: {
loader: "jsx",
include: [sourceJSPattern],
exclude: [],
},
});