'use strict'; var path = require('path'); var webpack = require('webpack'); var StatsPlugin = require('stats-webpack-plugin'); var IS_PRODUCTION = process.env.NODE_ENV === 'production'; var ROOT_PATH = path.resolve(__dirname, '..'); // must match config.webpack.dev_server.port var DEV_SERVER_PORT = 3808; var config = { context: ROOT_PATH, entry: { bundle: './app/assets/javascripts/webpack/bundle.js' }, output: { path: path.join(ROOT_PATH, 'public/assets/webpack'), publicPath: '/assets/webpack/', filename: IS_PRODUCTION ? '[name]-[chunkhash].js' : '[name].js' }, module: { loaders: [ { test: /\.es6$/, exclude: /node_modules/, loader: 'babel-loader', query: { presets: ['es2015'] } } ] }, plugins: [ // manifest filename must match config.webpack.manifest_filename // webpack-rails only needs assetsByChunkName to function properly new StatsPlugin('manifest.json', { chunkModules: false, source: false, chunks: false, modules: false, assets: true }) ], resolve: { extensions: ['', '.js', '.es6', '.js.es6'] } } if (!IS_PRODUCTION) { config.devServer = { port: DEV_SERVER_PORT, headers: { 'Access-Control-Allow-Origin': '*' } }; config.output.publicPath = '//localhost:' + DEV_SERVER_PORT + config.output.publicPath; } module.exports = config;