UNPKG

react-keyboard-event-handler

Version:
73 lines (67 loc) 1.55 kB
const webpack = require('webpack'); const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); const path = require('path'); const env = require('yargs').argv.env; // use --env with webpack 2 const pkg = require('./package.json'); let libraryName = pkg.name; let optimization = {}, outputFile; if (env === 'build') { optimization = { minimizer: [ new UglifyJsPlugin({ uglifyOptions: { compress: { drop_console: true, }, mangle: { reserved: ['e'], }, output: { beautify: false, }, comments: false, }, }), ], }, outputFile = libraryName + '.min.js'; } else { outputFile = libraryName + '.js'; } const config = { mode: 'production', entry: __dirname + '/src/index.js', devtool: 'source-map', output: { path: __dirname + '/lib', filename: outputFile, library: libraryName, libraryTarget: 'umd', umdNamedDefine: true }, module: { rules: [ { test: /(\.jsx|\.js)$/, loader: 'babel-loader', exclude: /(node_modules|bower_components)/ }, { test: /(\.jsx|\.js)$/, loader: 'eslint-loader', exclude: /node_modules/ } ] }, resolve: { modules: [path.resolve('./node_modules'), path.resolve('./src')], extensions: ['.json', '.js'] }, externals: { react: 'react', ['prop-types']: 'prop-types', }, plugins: [], optimization: optimization, }; module.exports = config;