我正在使用“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”(在某些路径结构下有第二个库)添加到正则表达式或忽略列表中吗?
答案 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。
添加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。