Sha256: c5ea817eac6fc8b73c86a14085f8d8d28359cb8b175329fda925a619de17e883

Contents?: true

Size: 1.9 KB

Versions: 16

Compression:

Stored size: 1.9 KB

Contents

// For inspiration on your webpack configuration, see:
// https://github.com/shakacode/react_on_rails/tree/master/spec/dummy/client
// https://github.com/shakacode/react-webpack-rails-tutorial/tree/master/client

const webpack = require('webpack');
const { resolve } = require('path');

const ManifestPlugin = require('webpack-manifest-plugin');
const webpackConfigLoader = require('react-on-rails/webpackConfigLoader');

const configPath = resolve('..', 'config');
const { devBuild, manifest, webpackOutputPath, webpackPublicOutputDir } =
  webpackConfigLoader(configPath);

const config = {

  context: resolve(__dirname),

  entry: {
    'webpack-bundle': [
      'es5-shim/es5-shim',
      'es5-shim/es5-sham',
      'babel-polyfill',
      './app/bundles/HelloWorld/startup/registration',
    ],
  },

  output: {
    // Name comes from the entry section.
    filename: '[name]-[hash].js',

    // Leading slash is necessary
    publicPath: `/${webpackPublicOutputDir}`,
    path: webpackOutputPath,
  },

  resolve: {
    extensions: ['.js', '.jsx'],
  },

  plugins: [
    new webpack.EnvironmentPlugin({
      NODE_ENV: 'development', // use 'development' unless process.env.NODE_ENV is defined
      DEBUG: false,
    }),
    new ManifestPlugin({ fileName: manifest, writeToFileEmit: true }),
  ],

  module: {
    rules: [
      {
        test: require.resolve('react'),
        use: {
          loader: 'imports-loader',
          options: {
            shim: 'es5-shim/es5-shim',
            sham: 'es5-shim/es5-sham',
          },
        },
      },
      {
        test: /\.jsx?$/,
        use: 'babel-loader',
        exclude: /node_modules/,
      },
    ],
  },
};

module.exports = config;

if (devBuild) {
  console.log('Webpack dev build for Rails'); // eslint-disable-line no-console
  module.exports.devtool = 'eval-source-map';
} else {
  console.log('Webpack production build for Rails'); // eslint-disable-line no-console
}

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
react_on_rails-9.0.0.beta.6 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
react_on_rails-9.0.0.beta.5 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
react_on_rails-9.0.0.beta.4 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
react_on_rails-9.0.0.beta.3 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
react_on_rails-9.0.0.beta.2 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
react_on_rails-9.0.0.beta.1 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
react_on_rails-8.0.6 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
react_on_rails-8.0.6.rc.1 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
react_on_rails-8.0.6.rc.0 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
react_on_rails-8.0.5 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
react_on_rails-8.0.4 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
react_on_rails-8.0.3 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
react_on_rails-8.0.2 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
react_on_rails-8.0.1 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
react_on_rails-8.0.0 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
react_on_rails-8.0.0.beta.3 lib/generators/react_on_rails/templates/base/base/client/webpack.config.js