const requireContext = require('require-context') const fs = require('fs') // const path = require('path') const requireComponent = requireContext( './../../src', true, /\.(js|ts)x?$/, 'lazy' ) const dependencias = { Example: '', VCalendar: "'react-big-calendar', 'moment'" } const makeConfig = () => { let config = '' requireComponent.keys().forEach(fileName => { // Ajusta la ruta para que coincida con tus rutas y extensiones de archivo const folderName = fileName.replace(/components[\\/]/, '').replace(/index\.(jsx|tsx)$/, '') if (folderName != null && folderName && !folderName.includes('index.')) { const defaultItem = ` { input: 'src/components/${folderName}/index.${fileName.endsWith('.tsx') ? 'tsx' : 'jsx'}', output: { dir: 'dist/${folderName}', format: 'es' }, external: [/@babel\\/runtime/, 'react', 'prop-types'${dependencias[folderName] != null ? (', ' + dependencias[folderName]) : ''}], plugins: [ typescript(), babel({ extensions: ['.js', '.jsx', '.ts', '.tsx'], babelHelpers: 'runtime', plugins: ['@babel/plugin-transform-runtime'] }), postcss({ plugins: [autoprefixer()], sourceMap: true, extract: true, minimize: true }), tailwind({ input: './styles/globals.css', purge: false }) ] },` config = `${config} ${defaultItem}` } }) return config } const content = `// File generated by npm run generateRollupFile import typescript from '@rollup/plugin-typescript'; import babel from '@rollup/plugin-babel'; import postcss from 'rollup-plugin-postcss'; import tailwind from 'rollup-plugin-tailwindcss'; import autoprefixer from 'autoprefixer'; const config = [${makeConfig()} ]; export default config; ` fs.writeFile('rollup.config.js', content, err => { if (err) { console.error(err) return } console.log('file written successfully') })