library-template/generateRollupConfig.js
2024-01-21 16:30:07 -06:00

54 lines
1.3 KiB
JavaScript

const typescript = require('@rollup/plugin-typescript')
const babel = require('@rollup/plugin-babel')
const postcss = require('rollup-plugin-postcss')
const tailwind = require('rollup-plugin-tailwindcss')
const autoprefixer = require('autoprefixer')
const resolve = require('@rollup/plugin-node-resolve')
const commonjs = require('@rollup/plugin-commonjs')
const { terser } = require('rollup-plugin-terser')
const pkg = require('./package.json')
const external = [
...Object.keys(pkg.dependencies || {}),
...Object.keys(pkg.peerDependencies || {}),
/@babel\/runtime/
]
const rollupConfig = {
input: 'src/index.ts',
output: {
dir: 'dist',
format: 'esm',
sourcemap: true,
preserveModules: true,
preserveModulesRoot: 'src'
},
external,
plugins: [
resolve(),
commonjs(),
typescript({
declaration: true,
noEmitOnError: true
}),
babel({
extensions: ['.js', '.jsx', '.ts', '.tsx'],
babelHelpers: 'runtime',
include: ['src/**/*'],
plugins: ['@babel/plugin-transform-runtime']
}),
postcss({
plugins: [autoprefixer()],
sourceMap: true,
extract: true,
minimize: true
}),
tailwind({
input: './styles/globals.css'
}),
terser()
]
}
module.exports = rollupConfig