如何忽略 gulp 中的特定凉亭 javascript 库(可能是正则表达式问题)?

How to ignore specific bower javascript library in gulp (regex issue maybe)?

我正在使用 "main-bower-files" gulp 插件。有一个很大的 bower 库...我想在我的名为 "fatjslib.js" 的列表中忽略它。我当前的正则表达式过滤器如下:

   var listOfBower = mainBowerFiles({filter: (/.*\.js$/i)});

这会得到 "fatjslib.js",当我打印出上面的变量时,我看到:

"\User\kmichaels\storage\app\bower_components\fatjslib\FatJsLib\FatJsLib.js"

我如何指定过滤器或更改正则表达式,或者做一些让 "listOfBower" 可以忽略 "FatJsLib.js" 文件的事情?如果可能的话,我不想指定整个路径,如果有一种方法可以通配符忽略任何东西,而不管带有 "FatJsLib" 的路径结构,那可能是最好的,但我愿意接受建议。将 "AnotherBigLib.js" (在某些路径结构下应该有第二个库)添加到正则表达式或忽略列表的解决方案是否灵活?

"main-bower-files" 插件停止读取特定 Bower 库的一种方法是在 bower.json

中传递 overrides option in the param or to set the overrides 属性

方法 1:传递覆盖参数:

overrides 选项传递给 mainBowerFiles() 并将 ignore 属性 设置为 true 用于您希望忽略的库。

var listOfBower = mainBowerFiles({"overrides":{"fatjslib":{"ignore":true}}});

方法 2:在 bower.json

中指定覆盖 属性

您还可以指定 overrides property in bower.json and then there will be no need to pass overrides option as a param. When main-bower-files plugin will read the bower.json file, it will ignore 在覆盖 属性 中将忽略标志设置为 true 的库。

在 bower.json 添加一个 overrides 属性:

"overrides": {
    "fatjslib": {
        "ignore": true
    }
}

如果 fatjslib 包含多个 js 文件,而您只想忽略一个而包含另一个,那么您可以覆盖包的主要部分。

每个包都有自己的 bower.json,其中有一个主要部分。此部分包含要注入的文件。

你可以做的是,在覆盖中 - 覆盖主要部分只是为了保留你想要注入的文件

"overrides": {
    "fatjslib": {
      "main": ["./dist/another-file.js"]
    }
  }

然后将这些覆盖提供给 mainBowerFiles

如何修改正则表达式如下:

/^(?!.*FatJsLib\.js$).*\.js$/i

并添加更多库:

/^(?!.*(?:FatJsLib|AnotherBigLib)\.js$).*\.js$/i

此外,如果您想过滤路径中带有 FatJsLib 的任何内容,请尝试使用:

/^(?!.*\(?:FatJsLib|AnotherBigLib)\.*$).*\.js$/i

来源:我写了正则表达式,你可以试试here. Also the main-bower-files documentation states that filter can use any regex