aboutsummaryrefslogtreecommitdiff
path: root/Timeline/ClientApp/webpack.config.dev.js
blob: 2fb9e866745f00ee39e9eabb6e3e47a453f13c74 (plain)
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
const path = require('path');
const webpack = require('webpack');

const config = require('./webpack.common');

config.mode('development');

config.entry('index').add('react-hot-loader/patch');

config.module
  .rule('ts')
  .use('babel')
  .options({
    plugins: ['react-hot-loader/babel'],
  });

config.module
  .rule('js')
  .use('babel')
  .options({
    plugins: ['react-hot-loader/babel'],
  });

config.module
  .rule('css')
  .use('style')
  .before('css')
  .loader('style-loader')
  .end();

config.module
  .rule('sass')
  .use('style')
  .before('css')
  .loader('style-loader')
  .end();

config.devtool('eval-cheap-module-source-map');

config.resolve.alias.set('react-dom', '@hot-loader/react-dom');

config.devServer
  .contentBase(path.resolve(__dirname, 'public/'))
  .host('0.0.0.0')
  .port(3000)
  .historyApiFallback(true)
  .hotOnly(true)
  .allowedHosts.add('.myide.io');

config.plugin('hot').use(webpack.HotModuleReplacementPlugin);

module.exports = (env) => {
  if (env && env.TIMELINE_USE_MOCK_BACKEND) {
    config
      .entry('index')
      .add(path.join(__dirname, 'src/app/http/mock/install.ts'));
  }

  return config.toConfig();
};