vite.config.lib.mts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { lingui } from '@lingui/vite-plugin';
  2. import react from '@vitejs/plugin-react';
  3. import path from 'path';
  4. import { pathToFileURL } from 'url';
  5. import { defineConfig } from 'vite';
  6. import dts from 'vite-plugin-dts';
  7. import { adminApiSchemaPlugin } from './vite/vite-plugin-admin-api-schema.js';
  8. import { configLoaderPlugin } from './vite/vite-plugin-config-loader.js';
  9. import { dashboardMetadataPlugin } from './vite/vite-plugin-dashboard-metadata.js';
  10. import { uiConfigPlugin } from './vite/vite-plugin-ui-config.js';
  11. import { getNormalizedVendureConfigPath } from './vite/vite-plugin-vendure-dashboard.js';
  12. const tempDir = path.join(import.meta.dirname, './.vendure-dashboard-temp');
  13. const normalizedVendureConfigPath = getNormalizedVendureConfigPath(
  14. pathToFileURL('./sample-vendure-config.ts'),
  15. );
  16. /**
  17. * This config file is for building the dashboard library (the shared components, hooks etc).
  18. */
  19. export default defineConfig({
  20. build: {
  21. lib: {
  22. entry: path.resolve(__dirname, 'src/lib/index.ts'),
  23. formats: ['es'],
  24. },
  25. rollupOptions: {
  26. external: ['react', 'react/jsx-runtime', 'react-dom', 'lucide-react', '@lingui/react'],
  27. },
  28. outDir: path.resolve(__dirname, 'dist', 'lib'),
  29. sourcemap: true,
  30. },
  31. resolve: {
  32. alias: {
  33. '@': path.resolve(__dirname, './src/lib'),
  34. },
  35. },
  36. plugins: [
  37. lingui(),
  38. react({
  39. babel: {
  40. plugins: ['@lingui/babel-plugin-lingui-macro'],
  41. },
  42. }),
  43. configLoaderPlugin({ vendureConfigPath: normalizedVendureConfigPath, tempDir }),
  44. adminApiSchemaPlugin(),
  45. dashboardMetadataPlugin(),
  46. uiConfigPlugin({ adminUiConfig: {} }),
  47. dts({
  48. include: ['src/lib/**/*.ts', 'src/lib/**/*.tsx'],
  49. }),
  50. ],
  51. });