text: /**
   * Builds the DLL for development electron renderer process
   */
  
  import webpack from 'webpack'
  import path from 'path'
  import merge from 'webpack-merge'
  import baseConfig from './webpack.config.base'
  import { dependencies } from './package.json'
  
  const dist = path.resolve(process.cwd(), 'dll')
  
  export default merge.smart(baseConfig, {
    context: process.cwd(),
  
    devtool: 'eval',
  
    target: 'electron-renderer',
  
    mode: 'development',
  
    externals: ['fsevents', 'crypto-browserify'],
  
    /**
     * @HACK: Copy and pasted from renderer dev config. Consider merging these
     *        rules into the base config. May cause breaking changes.
     */
    module: {
      rules: [
        {
          test: /\.global\.css$/,
          use: [
            {
              loader: 'style-loader'
            },
            {
              loader: 'css-loader',
              options: {
                sourceMap: true
              }
            }
          ]
        },
        {
          test: /^((?!\.global).)*\.css$/,
          use: [
            {
              loader: 'style-loader'
            },
            {
              loader: 'css-loader',
              options: {
                modules: true,
                sourceMap: true,
                importLoaders: 1,
                localIdentName: '[name]__[local]__[hash:base64:5]'
              }
            }
          ]
        },
        // Add SASS support  - compile all .global.scss files and pipe it to style.css
        {
          test: /\.global\.scss$/,
          use: [
            {
              loader: 'style-loader'
            },
            {
              loader: 'css-loader',
              options: {
                sourceMap: true
              }
            },
            {
              loader: 'sass-loader'
            }
          ]
        },
        // Add SASS support  - compile all other .scss files and pipe it to style.css
        {
          test: /^((?!\.global).)*\.scss$/,
          use: [
            {
              loader: 'style-loader'
            },
            {
              loader: 'css-loader',
              options: {
                modules: true,
                sourceMap: true,
                importLoaders: 1,
                localIdentName: '[name]__[local]__[hash:base64:5]'
              }
            },
            {
              loader: 'sass-loader'
            }
          ]
        },
        // WOFF Font
        {
          test: /\.woff(\?v=\d+\.\d+\.\d+)?$/,
          use: {
            loader: 'url-loader',
            options: {
              limit: 10000,
              mimetype: 'application/font-woff'
            }
          }
        },
        // WOFF2 Font
        {
          test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,
          use: {
            loader: 'url-loader',
            options: {
              limit: 10000,
              mimetype: 'application/font-woff'
            }
          }
        },
        // TTF Font
        {
          test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
          use: {
            loader: 'url-loader',
            options: {
              limit: 10000,
              mimetype: 'application/octet-stream'
            }
          }
        },
        // EOT Font
        {
          test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
          use: 'file-loader'
        },
        // SVG Font
        {
          test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
          use: {
            loader: 'url-loader',
            options: {
              limit: 10000,
              mimetype: 'image/svg+xml'
            }
          }
        },
        // Common Image Formats
        {
          test: /\.(?:ico|gif|png|jpg|jpeg|webp)$/,
          use: 'url-loader'
        }
      ]
    },
  
    resolve: {
      modules: ['app']
    },
  
    entry: {
      renderer: Object.keys(dependencies || {}).filter(dependency => dependency !== 'font-awesome')
    },
  
    output: {
      library: 'renderer',
      path: dist,
      filename: '[name].dev.dll.js',
      libraryTarget: 'var'
    },
  
    plugins: [
      new webpack.DllPlugin({
        path: path.join(dist, '[name].json'),
        name: '[name]'
      }),
  
      new webpack.LoaderOptionsPlugin({
        debug: true,
        options: {
          context: path.resolve(process.cwd(), 'app'),
          output: {
            path: path.resolve(process.cwd(), 'dll')
          }
        }
      })
    ]
  })
  