// Copyright 2020 Thomas Hintz // // This file is part of the Alpha Centauri Farming project. // // The Alpha Centauri Farming project is free software: you can // redistribute it and/or modify it under the terms of the GNU General // Public License as published by the Free Software Foundation, either // version 3 of the License, or (at your option) any later version. // // The Alpha Centauri Farming project is distributed in the hope that // it will be useful, but WITHOUT ANY WARRANTY; without even the // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with the Alpha Centauri Farming project. If not, see // . const merge = require('webpack-merge'); const common = require('./webpack.common.js'); const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin'); const webpack = require('webpack'); module.exports = function(env) { return merge(common, { mode: 'development', devtool: 'inline-source-map', devServer: { port: 9000, contentBase: './dist', hot: true, proxy: { '/websocket': { target: 'ws://localhost:8080', ws: true }, }, }, resolve: { modules: [path.resolve(__dirname, 'src'), path.resolve(__dirname, env.assets), 'node_modules'] }, plugins: [ new webpack.HotModuleReplacementPlugin(), new ReactRefreshWebpackPlugin(), new HtmlWebpackPlugin({ title: 'Alpha Centauri Farming', filename: 'index.html', meta: {viewport: 'width=device-width, initial-scale=1'}, }), ], module: { rules: [ { test: /\.jsx?$/, exclude: /node_modules/, use: [ { loader: require.resolve('babel-loader'), options: { plugins: [require.resolve('react-refresh/babel')], }, }, ], }, ], }, }); }