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.
81 lines
2.1 KiB
81 lines
2.1 KiB
"use strict";
|
|
|
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
|
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
|
|
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
const {
|
|
babel
|
|
} = require('@rollup/plugin-babel');
|
|
|
|
const commonjs = require('@rollup/plugin-commonjs');
|
|
|
|
const {
|
|
nodeResolve: resolve
|
|
} = require('@rollup/plugin-node-resolve');
|
|
|
|
const replace = require('@rollup/plugin-replace');
|
|
|
|
const json = require('@rollup/plugin-json');
|
|
|
|
const {
|
|
terser
|
|
} = require('rollup-plugin-terser');
|
|
|
|
const external = ['prop-types', 'react', 'react-dom', 'redux', 'react-redux', 'react-router', 'react-router-dom', 'styled-components', 'adminjs', '@adminjs/design-system', '@carbon/icons-react'];
|
|
const globals = {
|
|
react: 'React',
|
|
redux: 'Redux',
|
|
'@carbon/icons-react': 'CarbonIcons',
|
|
'styled-components': 'styled',
|
|
'prop-types': 'PropTypes',
|
|
'react-dom': 'ReactDOM',
|
|
'react-redux': 'ReactRedux',
|
|
'react-router': 'ReactRouter',
|
|
'react-router-dom': 'ReactRouterDOM',
|
|
adminjs: 'AdminJS',
|
|
'@adminjs/design-system': 'AdminJSDesignSystem'
|
|
};
|
|
const extensions = ['.mjs', '.js', '.jsx', '.json', '.ts', '.tsx', '.scss'];
|
|
|
|
const plugins = ({
|
|
babelConfig = {},
|
|
commonJSConfig = {},
|
|
minify = false
|
|
} = {}) => {
|
|
const pluginStack = [resolve({
|
|
extensions,
|
|
mainFields: ['browser', 'main', 'module', 'jsnext:main'],
|
|
preferBuiltins: false
|
|
}), json(), replace({
|
|
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),
|
|
'process.env.IS_BROWSER': 'true',
|
|
'process.env.': 'AdminJS.env.',
|
|
preventAssignment: true,
|
|
'process.browser': true
|
|
}), commonjs({ ...commonJSConfig
|
|
}), babel({
|
|
extensions,
|
|
babelrc: false,
|
|
babelHelpers: 'bundled',
|
|
exclude: 'node_modules/**/*.js',
|
|
presets: [require.resolve('@babel/preset-env', {
|
|
corejs: 3,
|
|
useBuiltIns: 'usage'
|
|
}), require.resolve('@babel/preset-react'), require.resolve('@babel/preset-typescript')],
|
|
...babelConfig
|
|
})];
|
|
|
|
if (minify) {
|
|
pluginStack.push(terser());
|
|
}
|
|
|
|
return pluginStack;
|
|
};
|
|
|
|
module.exports = {
|
|
external,
|
|
globals,
|
|
plugins
|
|
}; |