import vue from '@vitejs/plugin-vue'; import { resolve } from 'path'; import { defineConfig, mergeConfig } from 'vite'; import components from 'unplugin-vue-components/vite'; import icons from 'unplugin-icons/vite'; import iconsResolver from 'unplugin-icons/resolver'; import { vitestConfig } from '@n8n/frontend-vitest-config'; const frontendDir = resolve(__dirname, '..', 'frontend'); export default mergeConfig( defineConfig({ plugins: [ vue(), icons({ compiler: 'vue3', autoInstall: true, }), components({ dirs: [], dts: false, resolvers: [ iconsResolver({ prefix: 'icon', }), ], }), ], resolve: { alias: { '@': resolve(__dirname, 'src'), 'n8n-design-system': resolve(__dirname, 'src'), '@n8n/composables(.*)': resolve(frontendDir, '@n8n', 'composables', 'src$1'), lodash: 'lodash-es', }, }, build: { lib: { entry: resolve(__dirname, 'src', 'index.ts'), name: 'N8nDesignSystem', fileName: (format) => `n8n-design-system.${format}.js`, }, rollupOptions: { // make sure to externalize deps that shouldn't be bundled // into your library external: ['vue'], output: { exports: 'named', // Provide global variables to use in the UMD build // for externalized deps globals: { vue: 'Vue', }, }, }, }, }), vitestConfig, );