Веб-пакет требует выражения внешнего

У меня есть выражение require, которое должно быть решено во время выполнения, но я не могу разобраться с конфигурацией webpack для этого простого примера:

import something from 'module';
import pkg from './package.json';
let a;

if (pkg.main) {
   a = require(pkg.main);
}

Полученная сборка должна содержатьmodule но также требуют./package.json а такжеpkg.main во время выполнения в качестве модулей commonjs - другими словами, исключите их из сборки.

мойwebpack.config.js до сих пор:

var webpack = require('webpack');

module.exports = {
  entry: './src/main.js',
  output: {
    filename: '[name].js',
    path: './build'
  },
  target: 'node-webkit',
  plugins: [
    new webpack.ExternalsPlugin('commonjs', './package.json')
  ],
  module: {
    noParse: /\.min\.js/,
    exprContextRegExp: /$^/,
    exprContextCritical: false,
    loaders: [
      {
        test: /\.js$/,
        loader: 'babel',
        exclude: /node_modules/
      }
    ]
  }
};

То, что происходит сейчас, требуетpkg.main результаты вwebpackMissingModule исключение и если я удалюexprContextRegExpТребуется будет использовать контекст.

Спасибо за любую помощь

Ответы на вопрос(1)

Решение Вопроса

Для тех, кто интересуется: вы можете решить это с помощью этого плагина:

function() {
  this.parser.plugin('call require', function(expr) {
    if (expr.arguments.length !== 1) {
      return;
    }

    const param = this.evaluateExpression(expr.arguments[0]);
    if (!param.isString() && !param.isConditional()) {
      return true;
    }
  });
}

Все, что не может быть решено с помощью веб-пакета, останется как есть.

Ваш ответ на вопрос