const path = require("path") const webpack = require("webpack") const mode = process.env.NODE_ENV === 'development' ? 'development' : 'production'; module.exports = { mode: mode, optimization: { moduleIds: 'deterministic', }, entry: { application: "./app/javascript/application.js" }, output: { filename: "[name].js", sourceMapFilename: "[file].map", path: path.resolve(__dirname, "..", "..", "app/assets/builds"), }, resolve: { extensions: ['.js', '.jsx', '.ts', '.tsx'], }, module: { rules: [ { test: /\.(js|jsx|ts|tsx)$/, exclude: /node_modules/, use: ['babel-loader'] }, { test: /\.erb$/, enforce: 'pre', exclude: /node_modules/, use: [{ loader: 'rails-erb-loader', options: { runner: (/^win/.test(process.platform) ? 'ruby ' : '') + 'bin/rails runner' } }] } ] }, plugins: [ new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 1 }), new webpack.ProvidePlugin({ $: 'jquery', jQuery: 'jquery', Popper: ['popper.js', 'default'] }) ] }