export {} const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin') const merge = require('webpack-merge') const webpack = require('webpack') const common = require('./webpack.common.ts') const path = require('path') const PORT = parseInt(process.env.PORT, 10) || 8080 const PUBLIC = process.env.PUBLIC || undefined const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; module.exports = merge(common, { mode: 'development', devtool: 'cheap-inline-source-map', output: { filename: '[name].js', }, devServer: { hot: true, historyApiFallback: true, compress: true, proxy: { '/api/v2': 'http://localhost:9999', '/debug/flush': 'http://localhost:9999', }, disableHostCheck: true, host: '0.0.0.0', port: PORT, public: PUBLIC, }, module: { rules: [ { test: /\.s?css$/i, use: [ 'style-loader', 'css-loader', { loader: 'sass-loader', options: { implementation: require('sass'), hmr: true, }, }, ], }, ], }, plugins: [ new webpack.DllReferencePlugin({ context: path.join(__dirname, 'build'), manifest: require('./build/vendor-manifest.json'), }), new ForkTsCheckerWebpackPlugin(), new BundleAnalyzerPlugin({ analyzerMode: 'server', analyzerHost: '0.0.0.0', analyzerPort: '9998', openAnalyzer: false, }), ], })