const CopyWebpackPlugin = require('copy-webpack-plugin'); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const devMode = process.env.NODE_ENV !== 'production'; module.exports = { entry: { app: './js/app.ts' }, output: { path: __dirname + '/dist', filename: devMode ? '[name].js' : '[name].[hash].js', }, module: { rules: [ { test: /\.tsx?$/, use: 'ts-loader', exclude: /node_modules/ }, { test: /\.s?[ac]ss$/, use: [ devMode ? 'style-loader' : MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader', ], }, ] }, resolve: { extensions: [ '.tsx', '.ts', '.js' ] }, plugins: [ new CopyWebpackPlugin([ { from: 'favicon.png', to: '.' } ], {}), new MiniCssExtractPlugin({ filename: devMode ? '[name].css' : '[name].[hash].css', chunkFilename: devMode ? '[id].css' : '[id].[hash].css', }) ], performance : { hints : false }, devtool: 'source-map', };