From b78d21a524f7a11ad29b4bd230f23825f80c3ed7 Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 26 Jul 2020 15:02:55 +0800 Subject: Merge front end repo --- Timeline/ClientApp/webpack.config.dev.js | 95 ++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 Timeline/ClientApp/webpack.config.dev.js (limited to 'Timeline/ClientApp/webpack.config.dev.js') diff --git a/Timeline/ClientApp/webpack.config.dev.js b/Timeline/ClientApp/webpack.config.dev.js new file mode 100644 index 00000000..80295664 --- /dev/null +++ b/Timeline/ClientApp/webpack.config.dev.js @@ -0,0 +1,95 @@ +const path = require('path'); +const webpack = require('webpack'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const PnpWebpackPlugin = require('pnp-webpack-plugin'); + +const { commonRules, htmlCommonConfig } = require('./webpack.common'); + +module.exports = (env) => { + const entry = ['react-hot-loader/patch', './src/app/index.tsx']; + + if (env && env.TIMELINE_USE_MOCK_BACKEND) { + entry.push(path.join(__dirname, 'src/app/http/mock/install.ts')); + } + + return { + entry, + mode: 'development', + devtool: 'eval-source-map', + module: { + rules: [ + ...commonRules, + { + test: /\.ts(x?)$/, + exclude: /node_modules/, + use: [ + { + loader: 'babel-loader', + options: { + plugins: ['react-hot-loader/babel'], + }, + }, + { + loader: 'ts-loader', + }, + ], + }, + { + test: /\.js(x?)$/, + exclude: /node_modules/, + use: [ + { + loader: 'babel-loader', + options: { + plugins: ['react-hot-loader/babel'], + }, + }, + ], + }, + ], + }, + resolve: { + alias: { + 'react-dom': '@hot-loader/react-dom', + }, + extensions: ['*', '.js', '.jsx', '.ts', '.tsx'], + plugins: [PnpWebpackPlugin], + }, + resolveLoader: { + plugins: [PnpWebpackPlugin.moduleLoader(module)], + }, + optimization: { + runtimeChunk: 'single', + splitChunks: { + chunks: 'all', + cacheGroups: { + vendor: { + test: /[\\/]node_modules[\\/]/, + name: 'vendors', + chunks: 'all', + }, + }, + }, + }, + output: { + path: path.resolve(__dirname, 'dist/'), + filename: '[name].[hash].js', + chunkFilename: '[name].[hash].js', + publicPath: '/', + }, + devServer: { + contentBase: path.resolve(__dirname, 'public/'), + host: '0.0.0.0', + port: 3000, + historyApiFallback: true, + hotOnly: true, + allowedHosts: ['.myide.io'], + }, + plugins: [ + new HtmlWebpackPlugin({ + ...htmlCommonConfig, + }), + new webpack.HotModuleReplacementPlugin(), + ], + }; +}; -- cgit v1.2.3