33 lines
873 B
JavaScript
33 lines
873 B
JavaScript
import { defineConfig, transformWithEsbuild } from 'vite';
|
|
import react from '@vitejs/plugin-react';
|
|
import tailwindcss from '@tailwindcss/vite';
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
// Allow JSX in .js files (all files under src/)
|
|
{
|
|
name: 'treat-js-as-jsx',
|
|
async transform(code, id) {
|
|
if (!id.match(/\/src\/.*\.js$/)) return null;
|
|
return transformWithEsbuild(code, id, { loader: 'jsx' });
|
|
},
|
|
},
|
|
react({ include: '**/*.{jsx,js}' }),
|
|
tailwindcss(),
|
|
],
|
|
resolve: {
|
|
alias: { '@': path.resolve(__dirname, './src') },
|
|
},
|
|
base: '/',
|
|
server: { port: 3000 },
|
|
optimizeDeps: {
|
|
esbuildOptions: {
|
|
loader: { '.js': 'jsx' },
|
|
},
|
|
},
|
|
});
|