You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					46 lines
				
				1.3 KiB
			
		
		
			
		
	
	
					46 lines
				
				1.3 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								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://zenorocha.github.io/clipboard.js
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								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',
							 | 
						||
| 
								 | 
							
								        libraryTarget: 'umd',
							 | 
						||
| 
								 | 
							
								        globalObject: 'this'
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    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 })]
							 | 
						||
| 
								 | 
							
								};
							 |