Uncaught ReferenceError: require is not defined - Webpack2

Uncaught ReferenceError: require is not defined - Webpack2

我正在更新一个应用程序以使用 webpack 1 中的 webpack 2,并且常规构建工作正常。当使用 devServer 并且只需要生成的块之一时,问题似乎出现了(它是一个电子应用程序,所以我有主块和渲染器块 - 两者都包含在常规构建中,而开发服务器只包含渲染器块)

在 webpack 1 上一切正常,但出于某种原因运行时没有包含在我的块中?我试过重新排序但无济于事。

const HtmlWebpackPlugin = require('html-webpack-plugin');
const webpack = require('webpack');
const path = require('path');

module.exports = {
  context: __dirname,
  entry: {
    main: './main.js',
    renderer: './app/index.jsx'
  },
  output: {
      path: path.resolve(__dirname, './dist'),
      filename: "[name].js"
  },
  node: {
    __dirname: false,
    __filename: false
  },
  devtool: 'cheap-eval-source-map',
  target: 'electron',
  module: {
    loaders: [
      {
        test: /(\.js$|\.jsx$)/,
        exclude: /(node_modules|dist)/,
        loader: 'babel'
      },
      { test: /\.scss$/, loader: "style!css?modules!sass" },
      { test: /\.png$/, loader: "url?limit=100000" },
      { test: /\.jpg$/, loader: "file" }
    ]
  },
  resolve: {
    extensions: ['.js', '.jsx', '.scss'],
    modules: [path.resolve('./app'), 'node_modules']
  },
  plugins: [
  new HtmlWebpackPlugin({
    template: './app/index.html',
    chunks: ['renderer'],
    inject: 'body',
    hash: 'true'
  }),
  new webpack.DefinePlugin({
      'process.env': {
        'NODE_ENV': '"dev"'
      }
    })
  ],
  devServer: {
    contentBase: __dirname
  },
  externals: {
    'cheerio': 'window',
    'react/addons': true,
    'react/lib/ExecutionEnvironment': true,
    'react/lib/ReactContext': true
  }
};

其中一个块似乎没有正确包含:

/***/ },
/* 26 */
/***/ function(module, exports) {

module.exports = require("url");

这是为什么?

所以问题似乎出在我将目标设置为 electron 但构建网络时。这似乎在 webpack 1 中有效,但在更新到 webpack 2 后,它不再包含两个包中的运行时。

我采取的解决方案是有两个配置 - 一个用于电子(我的主要构建),一个用于网络(在 webpack 配置中指定目标)