Separate vite.lib.config.ts for library mode builds: - ES module output (index.es.js) with react/react-dom externalized - Consolidated type declarations via rollupTypes (index.es.d.ts) - CSS Modules with debuggable scoped names (cameleer_ prefix) - Deterministic output filenames (style.css, index.es.js) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
35 lines
850 B
TypeScript
35 lines
850 B
TypeScript
import { defineConfig } from 'vite'
|
|
import react from '@vitejs/plugin-react'
|
|
import dts from 'vite-plugin-dts'
|
|
import { resolve } from 'path'
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
react(),
|
|
dts({
|
|
include: ['src/design-system'],
|
|
exclude: ['**/*.test.tsx', '**/*.test.ts'],
|
|
outDir: 'dist',
|
|
tsconfigPath: resolve(__dirname, 'tsconfig.app.json'),
|
|
rollupTypes: true,
|
|
}),
|
|
],
|
|
css: {
|
|
modules: {
|
|
localsConvention: 'camelCase',
|
|
generateScopedName: 'cameleer_[name]_[local]_[hash:5]',
|
|
},
|
|
},
|
|
build: {
|
|
lib: {
|
|
entry: resolve(__dirname, 'src/design-system/index.ts'),
|
|
formats: ['es'],
|
|
fileName: () => 'index.es.js',
|
|
cssFileName: 'style',
|
|
},
|
|
rollupOptions: {
|
|
external: ['react', 'react-dom', 'react-router-dom', 'react/jsx-runtime'],
|
|
},
|
|
},
|
|
})
|