2021-03-23 09:45:40 -07:00

61 lines
1.4 KiB
JavaScript

const { resolve } = require('./resolve');
const { rollup } = require('rollup');
const alias = require('@rollup/plugin-alias');
const commonjs = require('@rollup/plugin-commonjs');
const nodeResolve = require('@rollup/plugin-node-resolve').default;
const replace = require('@rollup/plugin-replace');
const babel = require('rollup-plugin-babel');
const svg = require('rollup-plugin-react-svg');
const { terser } = require('rollup-plugin-terser');
const plugins = [
replace({
preventAssignment: true,
values: {
'process.env.NODE_ENV': '"production"',
},
}),
alias({
entries: [
{ find: 'react', replacement: 'preact/compat' },
{ find: 'react-dom', replacement: 'preact/compat' },
{ find: 'svg', replacement: resolve('svg') },
{ find: 'utils', replacement: resolve('build/lib/util.js') },
],
}),
svg(),
babel({
exclude: 'node_modules/**',
}),
nodeResolve({
extensions: [ '.mjs', '.js', '.jsx', '.json' ],
}),
commonjs({
include: 'node_modules/**',
}),
];
module.exports = exports = async function (input, prod) {
const inputOptions = {
input,
plugins,
};
const outputOptions = {
format: 'iife',
sourcemap: 'inline',
plugins: prod
? [ terser({ output: { comments: false } }) ]
: undefined,
};
const bundle = await rollup(inputOptions);
const output = await bundle.generate(outputOptions);
// console.log(output);
return output.output[0].code;
};