strapi/packages/core/helper-plugin/rollup.config.js
soupette 52adb33a00 Add terser plugin
Signed-off-by: soupette <cyril.lpz@gmail.com>
2021-05-17 10:11:11 +02:00

74 lines
1.8 KiB
JavaScript

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 || {}),
],
};