65 lines
1.9 KiB
JavaScript
65 lines
1.9 KiB
JavaScript
|
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')
|
||
|
})
|