mirror of
https://github.com/EthanShoeDev/fressh.git
synced 2026-01-11 06:12:51 +00:00
44 lines
1.2 KiB
TypeScript
44 lines
1.2 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',
|
|
},
|
|
},
|
|
});
|