UNPKG

react-settings-panel

Version:
86 lines (83 loc) 2.46 kB
const path = require('path'); const webpack = require('webpack') const WebpackStats = require('stats-webpack-plugin') const HtmlWebpackPlugin = require('html-webpack-plugin'); const ExtractTextPlugin = require('extract-text-webpack-plugin'); // -> ADDED IN THIS STEP // Constant with our paths const paths = { DIST: path.resolve(__dirname, 'dist'), SRC: path.resolve(__dirname, 'src'), JS: path.resolve(__dirname, 'src'), PUB: path.resolve(__dirname, 'public'), }; // Webpack configuration module.exports = { entry: [ 'webpack-hot-middleware/client?reload=true&overlay=false', path.join(paths.SRC, 'start.js'), ], output: { path: paths.DIST, filename: 'app.bundle.js', }, // Tell webpack to use html plugin plugins: [ new HtmlWebpackPlugin({ template: path.join(paths.PUB, 'index.html'), }), new ExtractTextPlugin('style.bundle.css'), // CSS will be extracted to this bundle file -> ADDED IN THIS STEP new webpack.HotModuleReplacementPlugin(), new webpack.NoEmitOnErrorsPlugin(), new WebpackStats('webpack.json') ], // Loaders configuration // We are telling webpack to use "babel-loader" for .js and .jsx files module: { rules: [ { test: /\.(js|jsx)$/, exclude: /node_modules/, use: [ 'babel-loader', ], }, // CSS loader for CSS files // Files will get handled by css loader and then passed to the extract text plugin // which will write it to the file we defined above { test: /\.css$/, loader: ExtractTextPlugin.extract({ use: 'css-loader', }), }, { test: /\.scss$/, loader: ExtractTextPlugin.extract({ use: 'sass-loader', }), }, // File loader for image assets -> ADDED IN THIS STEP // We'll add only image extensions, but you can things like svgs, fonts and videos { test: /\.(png|jpg|gif)$/, use: [ 'file-loader', ], }, ], }, // Enable importing JS files without specifying their's extenstion // // So we can write: // import MyComponent from './my-component'; // // Instead of: // import MyComponent from './my-component.jsx'; resolve: { extensions: ['.js', '.jsx'], }, devServer: { hot: true, historyApiFallback: true, } }