import { babel } from '@rollup/plugin-babel' import { builtinModules } from 'module' import { join, dirname } from 'node:path' import { fileURLToPath } from 'node:url' import { defineConfig } from 'vite' import packageJson from './package.json' const __dirname = dirname(fileURLToPath(import.meta.url)) export default defineConfig(({ mode }) => ({ mode, resolve: { alias: { '@': join(__dirname, 'src'), }, }, plugins: [ babel({ rootMode: 'upward', babelHelpers: 'runtime', extensions: ['.js', '.ts'], skipPreflightCheck: true, }), ], build: { sourcemap: mode === 'development', emptyOutDir: false, lib: { entry: 'src/index.ts', fileName: 'index', formats: ['es', 'cjs'], }, rollupOptions: { external: [...Object.keys(packageJson.dependencies || {}), ...builtinModules], }, }, }))