File size: 1,981 Bytes
d86254c
f0acb91
1809cfd
d86254c
d52f2d6
 
 
 
d86254c
d52f2d6
c766f4e
1809cfd
25ec032
d52f2d6
 
8a554f1
c766f4e
 
d52f2d6
 
 
c766f4e
8122c36
c766f4e
 
 
ef1f6b6
 
 
 
 
 
 
 
 
 
c766f4e
 
 
 
 
e4a590d
 
 
 
 
 
 
 
ef1f6b6
 
 
 
c766f4e
 
1809cfd
 
d52f2d6
 
 
 
 
 
 
1809cfd
d86254c
c766f4e
1809cfd
 
d52f2d6
1809cfd
 
f0acb91
25ec032
f0acb91
1809cfd
c766f4e
 
 
ebda3a6
c766f4e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
const path = require('path');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');

const isProduction = process.env.NODE_ENV === 'production';
const scriptFileName = isProduction ? 'driver-demo.min.js' : 'driver-demo.js';
const styleFileName = isProduction ? 'driver-demo.min.css' : 'driver-demo.css';

module.exports = {
  mode: isProduction ? 'production' : 'development',
  entry: [
    'webpack-dev-server/client?http://localhost:3000',
    './demo/styles/demo.scss',
    './demo/scripts/emoji.js',
    './demo/scripts/demo.js',
    './src/index.js',
  ],
  output: {
    path: path.join(__dirname, '/dist/demo'),
    publicPath: '/dist/demo/',
    filename: scriptFileName,
    libraryTarget: 'umd',
    library: 'Driver',
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'eslint-loader',
        enforce: 'pre',
        options: {
          failOnWarning: false,
          failOnError: true,
        },
      },
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        options: {
          presets: [
            [
              'env',
              {
                useBuiltIns: 'usage',
              },
            ],
          ],
          plugins: [
            'babel-plugin-add-module-exports',
            'transform-object-rest-spread',
          ],
        },
      },
      {
        test: /.scss$/,
        loader: ExtractTextPlugin.extract([
          {
            loader: 'css-loader',
            options: { minimize: isProduction, url: false },
          },
          'sass-loader',
        ]),
      },
    ],
  },
  plugins: [
    new ExtractTextPlugin({
      filename: styleFileName,
      allChunks: true,
    }),
    new CopyWebpackPlugin([
      './demo/images/separator.png',
    ]),
  ],
  stats: {
    colors: true,
  },
  devtool: 'cheap-module-eval-source-map',
};