12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- 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',
- 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 })]
- };
|