const pkg = require('./package.json'); const path = require('path'); const webpack = require('webpack'); const UglifyJSPlugin = require('uglifyjs-webpack-plugin'); const production = process.env.NODE_ENV === 'production' || false; const banner = `clipboard.js v${pkg.version} https://clipboardjs.com/ Licensed MIT © Zeno Rocha`; module.exports = { entry: './src/clipboard.js', mode: 'production', target: ['web', 'es5'], output: { filename: production ? 'clipboard.min.js' : 'clipboard.js', path: path.resolve(__dirname, 'dist'), library: 'ClipboardJS', globalObject: 'this', libraryExport: 'default', libraryTarget: 'umd', }, module: { rules: [{ test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' }], }, optimization: { minimize: production, minimizer: [ new UglifyJSPlugin({ parallel: require('os').cpus().length, uglifyOptions: { ie8: false, keep_fnames: false, output: { beautify: false, comments: (node, { value, type }) => type == 'comment2' && value.startsWith('!'), }, }, }), ], }, plugins: [new webpack.BannerPlugin({ banner })], };