UNPKG

awesome-react

Version:

A basic web app from React, called awesome-react

104 lines (99 loc) 2.32 kB
const HtmlWebpackPlugin = require('html-webpack-plugin'); const { NamedModulesPlugin } = require('webpack'); const merge = require('webpack-merge'); const { common } = require('./webpack.common'); const { root } = require('./root'); module.exports = merge(common, { mode: 'development', devtool: 'cheap-module-source-map', output: { pathinfo: true, filename: '[name].[hash:20].bundle.js', chunkFilename: '[name].[hash:20].chunk.js', path: root('dist'), publicPath: '/' }, module: { rules: [ { oneOf: [ { test: /\.jsx?$/, exclude: /node_modules/, use: [ { loader: 'babel-loader', options: { cacheDirectory: true } }, 'eslint-loader' ] }, { test: /\.(png|jpg|jpeg|gif|bmp)$/, loader: 'url-loader', options: { limit: 10000, name: 'assets/[name].[hash:8].[ext]' } }, { test: /\.css$/, use: [ 'style-loader', { loader: 'css-loader', options: { sourceMap: true, } }, ] }, { test: /\.scss$/, use: [ 'style-loader', { loader: 'css-loader', options: { sourceMap: true, importLoaders: 1, } }, { loader: 'sass-loader', options: { sourceMap: true } } ] }, { exclude: [/\.js$/, /\.html$/, /\.json$/], loader: 'file-loader', options: { name: 'assets/[name].[hash:8].[ext]' } } ] } ] }, plugins: [ new NamedModulesPlugin(), new HtmlWebpackPlugin({ inject: true, template: 'src/index.html' }), ], devServer: { compress: true, port: 9000, historyApiFallback: true, overlay: true }, performance: { hints: false } });