1 |
|
2 |
|
3 |
|
4 | const webpack = require('webpack');
|
5 | const UglifyJsPlugin = webpack.optimize.UglifyJsPlugin;
|
6 | const path = require('path');
|
7 | const env = require('yargs').argv.env;
|
8 |
|
9 | let libraryName = 'ReduxCrudManager';
|
10 |
|
11 | let plugins = [], outputFile;
|
12 |
|
13 | if (env === 'build') {
|
14 | plugins.push(new UglifyJsPlugin({ minimize: true }));
|
15 | outputFile = libraryName + '.min.js';
|
16 | } else {
|
17 | outputFile = libraryName + '.js';
|
18 | }
|
19 |
|
20 | const config = {
|
21 | entry: __dirname + '/src/index.js',
|
22 | devtool: 'source-map',
|
23 | output: {
|
24 | path: __dirname + '/dist',
|
25 | filename: outputFile,
|
26 | library: libraryName,
|
27 | libraryTarget: 'umd',
|
28 | umdNamedDefine: true
|
29 | },
|
30 | module: {
|
31 | rules: [
|
32 | {
|
33 | test: /(\.jsx|\.js)$/,
|
34 | loader: 'babel-loader',
|
35 | exclude: /(node_modules|bower_components)/
|
36 | },
|
37 | {
|
38 | test: /(\.jsx|\.js)$/,
|
39 | loader: 'eslint-loader',
|
40 | exclude: /node_modules/
|
41 | }
|
42 | ]
|
43 | },
|
44 | resolve: {
|
45 | modules: [path.resolve('./node_modules'), path.resolve('./src')],
|
46 | extensions: ['.json', '.js']
|
47 | },
|
48 | plugins: plugins
|
49 | };
|
50 |
|
51 | module.exports = config;
|