/// import { defineConfig } from 'vite'; import { resolve } from 'path'; import react from '@vitejs/plugin-react'; import icons from 'unplugin-icons/vite'; const chatPath = resolve(__dirname, 'assets', 'chat'); export default defineConfig({ plugins: [ react(), icons({ compiler: 'jsx', jsx: 'react', autoInstall: true, }), ], resolve: { alias: [ { find: '@chat-widget/core', replacement: chatPath }, { find: /^@chat-widget\/core(.+)$/, replacement: chatPath + '$1' }, ], }, define: { 'process.env.NODE_ENV': process.env.NODE_ENV ? `"${process.env.NODE_ENV}"` : '"development"', }, build: { outDir: 'build/chat', emptyOutDir: true, sourcemap: process.env.NODE_ENV === 'development', lib: { entry: resolve(chatPath, 'index.tsx'), name: 'ChatWidget', fileName: (format) => `chat.${format}.js`, cssFileName: 'style', formats: ['es'], }, rolldownOptions: { output: { exports: 'named', }, }, }, test: { globals: true, environment: 'jsdom', setupFiles: './assets/chat/__tests__/setup.ts', coverage: { reporter: ['text', 'lcov'], }, }, });