Regex для исключения библиотеки npm из минификации

Я должен использовать библиотеку pub/sub не с открытым исходным кодом для websockets ( диффузии) и придерживаться определенной версии, потому что это то, что используется на стороне сервера, и я не могу контролировать это.

Проблема в том, что в одном утилите в своей базе кода они используют зарезервированное ключевое слово interface и это вызывает ошибку минификации, которая нарушает сборку:

Failed to minify the code from this file: 

    ./node_modules/babel-loader/lib??ref--6-oneOf-2!./node_modules/diffusion/src/node_modules/util/interface.js:127 

    Read more here: bit.ly/CRA-build-minify

Какое регулярное выражение я могу использовать, чтобы исключить эту зависимость из минификации?

config.optimization.minimizer[0].options.exclude = /node_modules/; не исключает его из минификации.

config.optimization.minimizer[0].options.exclude = /^.*(node_modules|.js).*$/; работает, но это слишком широко


Для большего контекста это код зависимости, которая вызывает сбой минификации:

node_modules/ диффузии / SRC /node_modules/ Util/interface.js

function _implements() {
  var args = Array.prototype.slice.call(arguments, 0);
  var impl = args.pop();
  var unsatisfied = [];
  ...

  // The joys of duck type. Quack quack
  args.forEach(function(interface) {          <<<<<<<<<<<<<<<<<<<<<
      unsatisfied = unsatisfied.concat(interface(impl));
  });

Вот так выглядит файл конфигурации webpack до моих переопределений: (нам не разрешено извлекать)

"optimization": {
    "minimizer": [
      {
        "options": {
          "test": {

          },
          "extractComments": false,
          "sourceMap": true,
          "cache": true,
          "parallel": true,
          "terserOptions": {
            "output": {
              "ecma": 5,
              "comments": false,
              "ascii_only": true
            },
            "parse": {
              "ecma": 8
            },
            "compress": {
              "ecma": 5,
              "warnings": false,
              "comparisons": false,
              "inline": 2
            },
            "mangle": {
              "safari10": true
            }
          }
        }
      },
      {
        "pluginDescriptor": {
          "name": "OptimizeCssAssetsWebpackPlugin"
        },
        "options": {
          "assetProcessors": [
            {
              "phase": "compilation.optimize-chunk-assets",
              "regExp": {

              }
            }
          ],

0 ответов

Это исправлено в версии 6.0.0.

Легче исправить, когда не выкидывает ИМО.

Вероятно, вы используете старую версию или сценарии реакции, просто обновите ее до react-scripts@>=2.0.0.

Взятые из этого раздела в React документации

Другие вопросы по тегам