/// import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import dts from 'vite-plugin-dts'; import * as path from 'path'; import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin'; import { libInjectCss } from 'vite-plugin-lib-inject-css'; export default defineConfig({ root: __dirname, cacheDir: '../../../node_modules/.vite/packages/react/rt-avatar', plugins: [ react(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md']), dts({ entryRoot: 'src', tsconfigPath: path.join(__dirname, 'tsconfig.lib.json'), aliasesExclude: [/^@dpa\//], staticImport: true, }), libInjectCss(), ], // Uncomment this if you are using workers. // worker: { // plugins: [ nxViteTsPaths() ], // }, // Configuration for building your library. // See: https://vitejs.dev/guide/build.html#library-mode build: { outDir: '../../../dist/packages/react/rt-avatar', emptyOutDir: true, reportCompressedSize: true, commonjsOptions: { transformMixedEsModules: true, }, lib: { // Could also be a dictionary or array of multiple entry points. entry: 'src/index.ts', name: 'rt-avatar', fileName: 'index', // Change this to the formats you want to support. // Don't forget to update your package.json as well. formats: ['es', 'cjs'], }, rollupOptions: { // External packages that should not be bundled into your library. external: [ 'react', 'react-dom', 'react/jsx-runtime', 'classnames', '@dpa/react-frame-intro', '@dpa/react-text', '@dpa/react-icons', '@dpa/react-hoc', ], output: { banner: "'use client';", }, }, }, test: { watch: false, globals: true, testTimeout: 100_000, environment: 'jsdom', include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], reporters: ['default'], coverage: { reportsDirectory: '../../../coverage/packages/react/rt-avatar', provider: 'v8', }, }, });