qortal-ui/qortal-ui-core/tooling/generateES5BuildConfig.js

68 lines
2.1 KiB
JavaScript
Raw Normal View History

2021-12-25 14:39:47 +01:00
const babel = require('@rollup/plugin-babel');
const { nodeResolve } = require('@rollup/plugin-node-resolve');
const replace = require('@rollup/plugin-replace');
const commonjs = require('@rollup/plugin-commonjs');
const progress = require('rollup-plugin-progress');
2022-11-29 15:20:28 +01:00
const terser = require('@rollup/plugin-terser');
2021-12-25 14:39:47 +01:00
const alias = require('@rollup/plugin-alias');
2022-11-29 15:20:28 +01:00
const path = require('path');
2021-12-25 14:39:47 +01:00
const generateRollupConfig = (file, { outputDir, aliases }) => {
return {
inputOptions: {
input: file.input,
onwarn: (warning, rollupWarn) => {
if (warning.code !== 'CIRCULAR_DEPENDENCY') {
rollupWarn(warning)
}
},
plugins: [
nodeResolve({
preferBuiltins: false,
mainFields: ['module', 'browser']
}),
replace({
preventAssignment: true,
"process.env.NODE_ENV": JSON.stringify("production"),
}),
alias({
entries: Object.keys(aliases).map(find => {
return {
find,
replacement: aliases[find]
}
})
}),
commonjs(),
progress(),
babel.babel({
babelHelpers: 'bundled',
exclude: 'node_modules/**'
}),
terser({
compress: true,
output: {
comments: false,
},
})
],
preserveEntrySignatures: false,
external: ['crypto']
},
outputOptions: {
file: path.join(outputDir, file.output),
format: 'umd',
name: 'worker',
sourcemap: false
}
}
}
const generateES5BuildConfig = (files, options) => {
return files.map(file => generateRollupConfig(file, options))
}
module.exports = generateES5BuildConfig