正则表达式从缩小中排除 npm 库 [英] Regex to exclude npm library from minification

查看:32
本文介绍了正则表达式从缩小中排除 npm 库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须为 websockets 使用非开源发布/订阅库 (扩散)并且必须坚持使用特定版本,因为它是在服务器端使用的,我无法控制它.

I have to use a non open source pub/sub library for websockets (diffusion) and have to stick to a specific version because it's what is used on the server side and I have no control about it.

问题在于,在他们的代码库中的一个实用程序中,他们使用了保留关键字 interface 并触发了破坏构建的缩小错误:

The issue is that in one single util in their code base they use the reserved keyword interface and that triggers a minification error that breaks the build:

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/; does not ecxlude it from minification.

config.optimization.minimizer[0].options.exclude =/^.*(node_modules|.js).*$/; 有效,但范围太广

有关更多上下文,这是导致缩小失败的依赖项代码:

For more context, this is the code of the dependency that is causing the minification to fail:

node_modules/diffusion/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 配置文件的样子:(我们不允许弹出)


This is how the webpack config file looks like before my overrides: (we are not allowed to eject)

"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": {

              }
            }
          ],

推荐答案

此问题已在 6.0.0 版本中修复

This has been fixed as of version 6.0.0

这篇关于正则表达式从缩小中排除 npm 库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆