'use strict'; const webpack = require('webpack'); const merge = require('webpack-merge'); const HtmlPlugin = require('html-webpack-plugin'); const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); const helpers = require('./helpers'); const commonConfig = require('./webpack.config.common'); const environment = require('./dev.env'); const webpackConfig = merge(commonConfig, { mode: 'development', devtool: 'inline-cheap-module-source-map', output: { path: helpers.root('dist'), publicPath: '/', filename: 'js/[name].bundle.js', chunkFilename: 'js/[name].chunk.js', devtoolModuleFilenameTemplate: '[absolute-resource-path]', devtoolFallbackModuleFilenameTemplate: '[absolute-resource-path]?[hash]' }, optimization: { runtimeChunk: 'single', splitChunks: { chunks: 'all' } }, plugins: [ new webpack.EnvironmentPlugin(environment), new webpack.HotModuleReplacementPlugin(), new FriendlyErrorsPlugin(), new HtmlPlugin({ template: 'public/index.html', }) ], devServer: { compress: true, historyApiFallback: true, hot: true, open: true, overlay: true, port: 8888, stats: { normal: true }, proxy: { '/api': { logLevel: 'debug', target: 'http://0.0.0.0:8585' }, '/scss': { logLevel: 'debug', target: 'http://0.0.0.0:8585' } } } }); module.exports = webpackConfig;