| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 | | 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 })], |  | }; | 
 |