const path = require( 'path' ), webpack = require( 'webpack' ), devMode = process.env.NODE_ENV !== 'production'; module.exports = { context: path.resolve( __dirname, 'js' ), mode: 'development', entry: { main: [ './main.js' ], }, module: { rules: [ { test: /\.jsx?$/, exclude: /(node_modules|bower_components)/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env', '@babel/preset-react', { "include": [ "@babel/plugin-proposal-object-rest-spread" ] },{ "plugins": [ ["@babel/plugin-proposal-decorators", { "legacy": true }], "@babel/plugin-proposal-function-sent", "@babel/plugin-proposal-export-namespace-from", "@babel/plugin-proposal-numeric-separator", "@babel/plugin-proposal-throw-expressions", "@babel/plugin-transform-spread", "@babel/plugin-syntax-dynamic-import", "@babel/plugin-syntax-import-meta", ["@babel/plugin-proposal-class-properties", { "loose": true }], "@babel/plugin-proposal-json-strings", "@babel/plugin-proposal-object-rest-spread" ] }] } } } ], }, output: { path: path.resolve( __dirname, 'js/dist' ), filename: '[name].bundle.js', }, externals: { jquery: 'jQuery' }, plugins: [ new webpack.ProvidePlugin( { $: 'jquery', jQuery: 'jquery', 'window.jQuery': 'jquery', } ), ], devtool: 'source-map', watch: true, };