Files
fressh/packages/react-native-xtermjs-webview/vite.config.ts
2025-09-19 23:05:34 -04:00

46 lines
1.3 KiB
TypeScript

import fs from 'fs';
import { resolve } from 'path';
import react from '@vitejs/plugin-react';
import { defineConfig } from 'vite';
import dts from 'vite-plugin-dts';
const logExternal: boolean = false;
export default defineConfig({
plugins: [
react({
}),
dts({
tsconfigPath: './tsconfig.app.json',
// This makes dist/ look nice but breaks Cmd + Click
rollupTypes: false,
// We need this or the types defined in package.json will be missing
// If rollupTypes is true, this is forced true
insertTypesEntry: true,
compilerOptions: {
// This allows Cmd + Click from different packages in the monorepo
declarationMap: true,
},
}),
],
build: {
sourcemap: true,
rollupOptions: {
// Externalize all non-relative, non-absolute imports (i.e. dependencies)
// Keep only our own sources and the raw internal HTML in the bundle.
external: (id) => {
if (logExternal) fs.writeFileSync('dep.log', `${id}\n`, { flag: 'a' });
const isRelative = id.startsWith('.') || id.startsWith('/');
const isInternalHtml = id.includes('dist-internal/index.html?raw');
return !isRelative && !isInternalHtml;
},
},
lib: {
entry: resolve(__dirname, 'src/index.tsx'),
formats: ['es'],
fileName: () => 'index.js',
},
},
});