You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.6 KiB

3 years ago
/* eslint-disable import/no-extraneous-dependencies */
import babel from 'rollup-plugin-babel'
import commonjs from 'rollup-plugin-commonjs'
import resolve from 'rollup-plugin-node-resolve'
import { terser } from 'rollup-plugin-terser'
import replace from 'rollup-plugin-replace'
const minify = process.env.NODE_ENV === 'production'
const extensions = ['.mjs', '.js', '.jsx', '.json', '.ts', '.tsx']
const plugins = [
resolve({ extensions }),
replace({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),
'process.env.IS_BROWSER': 'true',
}),
commonjs(),
babel({
extensions,
babelrc: false,
plugins: [
require.resolve('babel-plugin-styled-components'),
],
presets: [
require.resolve('@babel/preset-react'),
require.resolve('@babel/preset-env'),
require.resolve('@babel/preset-typescript'),
],
}),
]
if (minify) {
plugins.push(terser())
}
export default {
input: 'entry.js',
plugins,
external: [
'react',
'styled-components',
'react-dom',
'react-router',
'react-router-dom',
],
output: {
file: minify ? 'bundle.production.js' : 'bundle.development.js',
sourcemap: minify ? false : 'inline',
name: 'AdminJSDesignSystem',
format: 'iife',
globals: {
react: 'React',
'styled-components': 'styled',
'react-dom': 'ReactDOM',
'react-router': 'ReactRouter',
'react-router-dom': 'ReactRouterDOM',
'react-select': 'ReactSelect',
'react-select/async': 'ReactSelectAsync',
'react-select/creatable': 'ReactSelectCreatable',
},
},
}