Files
skybridge/web-components/rollup.config.js
2025-08-31 23:27:52 -04:00

65 lines
1.4 KiB
JavaScript

import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import typescript from '@rollup/plugin-typescript';
import babel from '@rollup/plugin-babel';
import peerDepsExternal from 'rollup-plugin-peer-deps-external';
import terser from '@rollup/plugin-terser';
import postcss from 'rollup-plugin-postcss';
import { readFileSync } from 'fs';
const packageJson = JSON.parse(readFileSync('./package.json', 'utf8'));
export default {
input: 'src/index.ts',
output: [
{
file: packageJson.main,
format: 'cjs',
sourcemap: true,
},
{
file: packageJson.module,
format: 'esm',
sourcemap: true,
},
],
plugins: [
peerDepsExternal(),
resolve({
browser: true,
}),
commonjs(),
typescript({
tsconfig: './tsconfig.json',
}),
babel({
babelHelpers: 'bundled',
exclude: 'node_modules/**',
extensions: ['.js', '.jsx', '.ts', '.tsx'],
presets: [
['@babel/preset-react', { runtime: 'automatic' }],
'@babel/preset-typescript',
],
}),
postcss({
extract: false,
modules: false,
use: ['sass'],
}),
terser(),
],
external: [
'react',
'react-dom',
'@mantine/core',
'@mantine/hooks',
'@mantine/notifications',
'@mantine/form',
'@mantine/dates',
'@mantine/modals',
'@mantine/code-highlight',
'@tabler/icons-react',
'axios',
'dayjs',
],
};