ungleich-staticcms/assets/u/static/popper.js-1.16.0/packages/bundle/index.js

138 lines
2.8 KiB
JavaScript
Raw Normal View History

const { rollup, watch } = require('rollup');
const rimraf = require('rimraf');
const { argv } = require('yargs');
// Plugins
const babel = require('rollup-plugin-babel');
const babili = require('rollup-plugin-babel-minify');
const watchEnabled = argv.watch;
// Configs
const babelConfig = require('@popperjs/babel-config');
const sourcemap = true;
const external = ['popper.js'];
const globals = { 'popper.js': 'Popper' };
function bundle({ input, file, name, banner, miniBanner }) {
rimraf.sync('dist');
const minifyOptions = {
comments: false,
banner: miniBanner,
mangle: { topLevel: true },
};
rollup({
input,
plugins: [babel(babelConfig.es6)],
external,
}).then(bundle => {
bundle.write({
format: 'es',
file: `dist/${file}`,
sourcemap,
globals,
banner,
});
});
rollup({
input,
plugins: [babili(minifyOptions), babel(babelConfig.es6)],
external,
}).then(bundle => {
bundle.write({
format: 'es',
file: `dist/${file.replace('.js', '.min.js')}`,
sourcemap,
globals,
});
});
rollup({
input,
plugins: [babel(babelConfig.es5)],
external,
}).then(bundle => {
bundle.write({
format: 'umd',
file: `dist/umd/${file}`,
sourcemap,
globals,
name,
banner,
});
bundle.write({
format: 'es',
file: `dist/esm/${file}`,
sourcemap,
globals,
banner,
});
});
rollup({
input,
plugins: [babili(minifyOptions), babel(babelConfig.es5)],
external,
}).then(bundle => {
bundle.write({
format: 'umd',
file: `dist/umd/${file.replace('.js', '.min.js')}`,
sourcemap,
globals,
name,
});
bundle.write({
format: 'es',
file: `dist/esm/${file.replace('.js', '.min.js')}`,
sourcemap,
});
});
}
function bundleWatch({ input, file, name, banner, miniBanner }) {
const watcher = watch({
input,
plugins: [babel(babelConfig.es5)],
external,
output: {
format: 'umd',
file: `dist/umd/${file}`,
sourcemap,
globals,
name,
banner,
},
});
console.log('\x1Bc'); // reset console
console.log('Rollup is watching for changes...');
watcher.on('event', event => {
switch (event.code) {
case 'START':
console.info('Rebuilding...');
break;
case 'BUNDLE_START':
console.info('Bundling...');
break;
case 'BUNDLE_END':
console.info('Bundled!');
break;
case 'END':
console.info('Done!');
break;
case 'ERROR':
case 'FATAL':
console.error('Error!');
/* eslint-enable no-console */
}
});
process.on('exit', () => {
watcher.close();
});
}
module.exports = watchEnabled ? bundleWatch : bundle;