const path = require('path'); const FilewatcherPlugin = require('filewatcher-webpack-plugin'); const ELECTRON_RENDERER_PROCESS_ROOT = path.resolve(__dirname, 'src/renderer/'); let PROCESS_ARGV = process.env.npm_config_argv; if (PROCESS_ARGV) { PROCESS_ARGV = JSON.parse(PROCESS_ARGV); } const isDev = PROCESS_ARGV && PROCESS_ARGV.original && PROCESS_ARGV.original.indexOf('dev') !== -1; module.exports = { module: { rules: [ { test: /\.jsx?$/, use: [ // This rule is temporarily necessary until https://github.com/electron-userland/electron-webpack/issues/60 is fixed. { loader: 'babel-loader', options: { presets: ['env', 'react', 'stage-2'], }, }, { loader: 'preprocess-loader', options: { TARGET: 'app', ppOptions: { type: 'js', }, }, }, ], }, ], }, // This allows imports to be made from the renderer process root (https://moduscreate.com/blog/es6-es2015-import-no-relative-path-webpack/). resolve: { modules: [ELECTRON_RENDERER_PROCESS_ROOT, 'node_modules', __dirname], extensions: ['.js', '.jsx', '.scss'], }, plugins: isDev ? [ new FilewatcherPlugin({ watchFileRegex: [require.resolve('lbry-redux'), require.resolve('lbryinc')], }), ] : [], };