text: /**
   * Base webpack config used across other specific configs
   */
  
  import path from 'path';
  import webpack from 'webpack';
  import { dependencies as externals } from './app/package.json';
  
  export default {
    externals: Object.keys(externals || {}),
  
    module: {
      rules: [{
        test: /\.jsx?$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            cacheDirectory: true
          }
        }
      }]
    },
  
    output: {
      path: path.join(__dirname, 'app'),
      // https://github.com/webpack/webpack/issues/1114
      libraryTarget: 'commonjs2'
    },
  
    /**
     * Determine the array of extensions that should be used to resolve modules.
     */
    resolve: {
      extensions: ['.js', '.jsx', '.json'],
      alias: {
        assets: path.resolve('./app/assets'),
        actions: path.resolve('./app/actions'),
        containers: path.resolve('./app/containers'),
        components: path.resolve('./app/components'),
        utils: path.resolve('./app/utils'),
        styles: path.resolve('./app/styles'),
      },
      modules: [
        path.join(__dirname, 'app'),
        'node_modules',
      ],
    },
  
    plugins: [
      new webpack.EnvironmentPlugin({
        NODE_ENV: 'production'
      }),
  
      new webpack.NamedModulesPlugin(),
    ],
  };
  