import peerDepsExternal from 'rollup-plugin-peer-deps-external'; import nodePolyfills from 'rollup-plugin-node-polyfills'; import babel from '@rollup/plugin-babel'; import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import replace from '@rollup/plugin-replace'; import image from '@rollup/plugin-image'; import postcss from 'rollup-plugin-postcss'; import { terser } from 'rollup-plugin-terser'; import packageJson from './package.json'; export default { input: './lib/src/index.js', output: [ { file: packageJson.main, format: 'cjs', sourcemap: false, }, { file: packageJson.module, format: 'esm', sourcemap: false, }, ], plugins: [ peerDepsExternal({ packageJsonPath: './package.json', }), postcss({ modules: true, minimize: true, }), nodeResolve({ extensions: ['.js'], preferBuiltins: true, }), replace({ 'process.env.NODE_ENV': JSON.stringify('production'), preventAssignment: true, }), babel({ presets: [ [ '@babel/preset-env', { modules: false, targets: { browsers: ['Since 2017'], }, }, ], '@babel/preset-react', ], babelHelpers: 'runtime', plugins: [ '@babel/plugin-transform-runtime', '@babel/plugin-proposal-class-properties', ['babel-plugin-styled-components', { pure: true }], ], extensions: ['.js', '.svg'], exclude: 'node_modules/**', }), commonjs(), image(), nodePolyfills(), terser(), ], external: [ ...Object.keys(packageJson.dependencies || {}), ...Object.keys(packageJson.peerDependencies || {}), ], };