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

时间:2016-01-02 23:22:06

标签: gulp bower

我正在使用“main-bower-files”gulp插件。有一个巨大的凉亭库...我想在我的名单“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”(在某些路径结构下有第二个库)添加到正则表达式或忽略列表中吗?

3 个答案:

答案 0 :(得分:3)

“main-bower-files”插件停止阅读特定bower库的一种方法是传递参数中的overrides选项或在bower.json中设置overrides属性

方法1:传递覆盖参数:

overrides选项传递给mainBowerFiles(),并将ignore属性设置为您要忽略的库的true

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

方法2:在bower.json中指定覆盖属性

您还可以在bower.json中指定overrides属性,然后就不需要将覆盖选项作为参数传递。当main-bower-files插件读取bower.json文件时,它将ignore设置的库覆盖属性,忽略标志为true。

bower.json中的

添加overrides属性:

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

答案 1 :(得分:2)

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

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

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

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

然后将这些覆盖提供给mainBowerFiles

答案 2 :(得分:0)

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

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

并添加更多库:

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

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

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

来源:我写了正则表达式,你可以尝试here。 main-bower-files文档还指出filter can use any regex