1 | const path = require('path');
|
2 | const EnvEnums = require('env-enums');
|
3 | const webpack = require('webpack');
|
4 | const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
|
5 |
|
6 | const pkg = require('./package.json');
|
7 | const env = process.env.NODE_ENV || EnvEnums.DEVELOPMENT;
|
8 |
|
9 |
|
10 | let webpackConfig = {
|
11 | entry: {
|
12 | index: './src/index.js',
|
13 | data: './src/data.js',
|
14 | },
|
15 | output: {
|
16 | path: path.resolve(__dirname, './dist'),
|
17 | filename: env === EnvEnums.PRODUCTION ? '[name].min.js' : '[name].js',
|
18 | },
|
19 | devtool: 'cheap-source-map',
|
20 | module: {
|
21 | rules: [
|
22 | {
|
23 | test: /\.js$/,
|
24 | exclude: /node_modules/,
|
25 | use: {
|
26 | loader: 'babel-loader',
|
27 | options: {
|
28 | presets: ['es2015', 'stage-0'],
|
29 | plugins: ['add-module-exports', 'transform-runtime'],
|
30 | },
|
31 | },
|
32 | },
|
33 | ],
|
34 | },
|
35 | plugins: [new webpack.NamedModulesPlugin()],
|
36 | };
|
37 |
|
38 |
|
39 | if (env === 'production') {
|
40 | webpackConfig.plugins.push(new UglifyJSPlugin());
|
41 | }
|
42 |
|
43 | module.exports = webpackConfig;
|