Files
bigcapital/shared/pdf-templates/vite.config.ts

62 lines
1.6 KiB
TypeScript

import react from '@vitejs/plugin-react';
import path from 'node:path';
import { defineConfig } from 'vitest/config';
import dts from 'vite-plugin-dts';
import tailwindcss from 'tailwindcss';
import { UserConfigExport } from 'vite';
import { name } from './package.json';
const app = async (): Promise<UserConfigExport> => {
/**
* Removes everything before the last
* @octocat/library-repo -> library-repo
* vite-component-library-template -> vite-component-library-template
*/
const formattedName = name.match(/[^/]+$/)?.[0] ?? name;
return defineConfig({
define: {
isBrowser: 'false', // This will replace isBrowser with false in the bundled code
},
ssr: {
noExternal: true,
},
plugins: [
react(),
dts({
insertTypesEntry: true,
}),
],
css: {
postcss: {
plugins: [tailwindcss],
},
},
build: {
lib: {
entry: path.resolve(__dirname, 'src/lib/main.ts'),
name: formattedName,
formats: ['es', 'umd'],
fileName: (format: string) => `${formattedName}.${format}.js`,
},
rollupOptions: {
// external: ['react', 'react/jsx-runtime', 'react-dom', 'tailwindcss'],
// output: {
// globals: {
// react: 'React',
// 'react/jsx-runtime': 'react/jsx-runtime',
// 'react-dom': 'ReactDOM',
// tailwindcss: 'tailwindcss',
// },
// },
},
},
test: {
globals: true,
environment: 'jsdom',
},
});
};
// https://vitejs.dev/config/
export default app;