1 | const path = require('path');
|
2 |
|
3 | const webpack = require('webpack');
|
4 | const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
|
5 |
|
6 |
|
7 | const mode = process.env.NODE_ENV || 'development';
|
8 |
|
9 |
|
10 | module.exports = {
|
11 | entry: {
|
12 | index: path.resolve(__dirname, 'src', 'index.js'),
|
13 | },
|
14 | output: {
|
15 | path: path.resolve(__dirname, 'dist'),
|
16 | filename: '[name].js',
|
17 | library: 'user-agents',
|
18 | libraryTarget: 'umd',
|
19 | umdNamedDefine: true,
|
20 | },
|
21 | module: {
|
22 | rules: [
|
23 | {
|
24 | test: /\.js$/,
|
25 | include: path.resolve(__dirname, 'src'),
|
26 | enforce: 'pre',
|
27 | loader: 'eslint-loader',
|
28 | },
|
29 | {
|
30 | test: /\.js$/,
|
31 | include: path.resolve(__dirname, 'src'),
|
32 | loader: 'babel-loader',
|
33 | },
|
34 | {
|
35 | test: /\.(gif|jpg|jpeg|png|svg)$/,
|
36 | loader: 'url-loader',
|
37 | },
|
38 | ],
|
39 | },
|
40 | target: 'node',
|
41 | devtool: 'source-map',
|
42 | optimization: {
|
43 | minimizer: [
|
44 | new UglifyJsPlugin({
|
45 | sourceMap: true,
|
46 | uglifyOptions: {
|
47 | mangle: {
|
48 | reserved: [
|
49 | 'Slice',
|
50 | 'SliceArray',
|
51 | 'SliceString',
|
52 | ],
|
53 | },
|
54 | },
|
55 | }),
|
56 | ],
|
57 | },
|
58 | mode,
|
59 | };
|