Portal Community

Build Configuration — Vite Library Mode

// vite.config.ts
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import dts from 'vite-plugin-dts';

export default defineConfig({
  plugins: [react(), dts({ include: 'src' })],
  build: {
    lib: {
      entry: 'src/index.ts',
      name: 'AtlasContactControls',
      formats: ['es', 'cjs'],
      fileName: (format) => `index.${format === 'es' ? 'esm' : 'cjs'}.js`
    },
    rollupOptions: {
      // Peer dependencies must be external — not bundled
      external: [
        'react',
        'react-dom',
        '@atlas-forms/types-js',
        '@atlas-forms/control-registry-js',
        '@atlas-forms/validation-js'
      ],
      output: {
        globals: {
          'react': 'React',
          'react-dom': 'ReactDOM'
        }
      }
    }
  }
});

Publication Checklist

MarketHub Requirements for Control Libraries

Field libraries submitted to MarketHub undergo additional review: