const webpack = require('webpack') const NODE_ENV = process.env.NODE_ENV || 'development' const plugins = [ new webpack.DefinePlugin({ "process.env.NODE_ENV": `"${NODE_ENV}"` }), new webpack.IgnorePlugin(/^mock-firmata$/), // work around bindings.js error new webpack.ContextReplacementPlugin(/bindings$/, /^$/) // work around bindings.js error ] const externals = ["bindings"] // work around bindings.js error if (NODE_ENV === 'production') { plugins.push(new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false } })) } else { // enable this to test for circular dependencies // const CircularDependencyPlugin = require('circular-dependency-plugin') // plugins.push(new CircularDependencyPlugin({ // exclude: /^node_modules\//, // failOnError: true // })) } const devtool = NODE_ENV === 'production' ? undefined : 'cheap-module-eval-source-map' module.exports = { context: __dirname, plugins, externals, devtool, module: { loaders: [ { test: /\.json$/, loader: 'json-loader' }, { test: /\.(js|jsx)?$/, exclude: /node_modules/, loader: 'babel-loader?cacheDirectory&retainLines=true' } ] }, entry: { 'metamaps.bundle': './frontend/src/index.js' }, output: { path: __dirname + '/app/assets/javascripts/webpacked', filename: '[name].js', devtoolModuleFilenameTemplate: '[absolute-resource-path]' } }