library-template/rollup.config.js

56 lines
1.3 KiB
JavaScript
Raw Normal View History

2024-01-21 14:13:07 -06:00
import fs from 'fs'
import path from 'path'
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'
import resolve from '@rollup/plugin-node-resolve'
import commonjs from '@rollup/plugin-commonjs'
import { terser } from 'rollup-plugin-terser'
2024-01-21 16:00:28 -06:00
const pkgPath = path.resolve('package.json')
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'))
2024-01-21 14:13:07 -06:00
2024-01-21 16:00:28 -06:00
const external = [
...Object.keys(pkg.dependencies || {}),
...Object.keys(pkg.peerDependencies || {}),
/@babel\/runtime/
]
2024-01-21 14:13:07 -06:00
2024-01-21 16:00:28 -06:00
export default {
input: 'src/index.ts',
output: {
dir: 'dist',
format: 'esm',
sourcemap: true,
preserveModules: true,
preserveModulesRoot: 'src'
},
external,
2024-01-21 14:13:07 -06:00
plugins: [
resolve(),
commonjs(),
2024-01-21 16:00:28 -06:00
typescript({
declaration: true,
noEmitOnError: true
}),
2024-01-21 14:13:07 -06:00
babel({
extensions: ['.js', '.jsx', '.ts', '.tsx'],
babelHelpers: 'runtime',
2024-01-21 16:00:28 -06:00
include: ['src/**/*'],
2024-01-21 14:13:07 -06:00
plugins: ['@babel/plugin-transform-runtime']
}),
postcss({
plugins: [autoprefixer()],
sourceMap: true,
extract: true,
minimize: true
}),
tailwind({
2024-01-21 16:00:28 -06:00
input: './styles/globals.css'
2024-01-21 14:13:07 -06:00
}),
terser()
]
2024-01-21 16:00:28 -06:00
}