aboutsummaryrefslogtreecommitdiff
path: root/webpack.config.js
blob: 50079255ff9a9e960f3d22ab27aa0bebd3be838e (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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
var path = require('path');
var webpack = require('webpack');
const CopyWebpackPlugin = require("copy-webpack-plugin");

module.exports = {
  mode: 'development',
  entry: {
    bundle: ["./src/client/views/Main.tsx", 'webpack-hot-middleware/client?reload=true'],
    viewer: ["./src/debug/Viewer.tsx", 'webpack-hot-middleware/client?reload=true'],
    test: ["./src/debug/Test.tsx", 'webpack-hot-middleware/client?reload=true'],
    inkControls: ["./src/mobile/InkControls.tsx", 'webpack-hot-middleware/client?reload=true'],
    imageUpload: ["./src/mobile/ImageUpload.tsx", 'webpack-hot-middleware/client?reload=true'],
  },
  devtool: "source-map",
  node: {
    fs: 'empty',
    module: 'empty',
    dns: 'mock',
    tls: 'mock',
    net: 'mock'
  },
  output: {
    filename: "[name].js",
    path: path.resolve(__dirname, "build"),
    publicPath: "/"
  },
  resolve: {
    extensions: ['.js', '.ts', '.tsx']
  },
  module: {
    rules: [
      {
        test: [/\.tsx?$/, /\.ts?$/,],
        enforce: 'pre',
        use: [
          {
            loader: "tslint-loader",
          }
        ]
      }, {
        test: [/\.tsx?$/, /\.ts?$/,],
        loader: "awesome-typescript-loader",
        include: path.join(__dirname, 'src')
      },
      {
        test: /\.scss|css$/,
        use: [
          {
            loader: "style-loader"
          },
          {
            loader: "css-loader"
          },
          {
            loader: "sass-loader"
          }
        ]
      },
      {
        test: /\.(jpg|png|pdf)$/,
        use: [
          {
            loader: 'file-loader'
          }
        ]
      },
      {
        test: /\.(png|jpg|gif)$/i,
        use: [
          {
            loader: 'url-loader',
            options: {
              limit: 8192
            }
          }
        ]
      }]
  },
  plugins: [
    new CopyWebpackPlugin([{ from: "deploy", to: path.join(__dirname, "build") }]),
    new webpack.optimize.OccurrenceOrderPlugin(),
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoEmitOnErrorsPlugin()
  ],
  devServer: {
    compress: false,
    host: "localhost",
    contentBase: path.join(__dirname, 'deploy'),
    port: 4321,
    hot: true,
    https: false,
    overlay: {
      warnings: true,
      errors: true
    }
  }
};