广泛排除后特定的glob模式不匹配

时间:2014-08-04 20:55:20

标签: javascript node.js glob gulp

我正在使用Gulp作为构建过程,我最近遇到了一些特定于页面的文件注入问题(通过gulp-inject fyi)。

一些上下文:我抓取所有HTML文件,然后一次一个地查看它们,这样我就可以使用他们的文件名将特​​定文件包含到glob集合中,例如index.html我有:< / p>

[
    'export/assets/js/libs/jquery*.js',    // jQuery first
    'export/assets/js/libs/*.js',          // Followed by all the libs
    'export/assets/js/*.js',               // Followed by any other js file
    '!export/assets/js/view-*.js',         // Excluding all view-* files [see note]
    '!export/assets/**/_*.js',             // Excluding underscore prefixed files
    '!export/assets/js/ie*.js',            // Excluding all IE libs
    'export/assets/js/view-index*.js'      // Including page specific file
]

[note]可能有更多特定于页面的文件,例如。 view-profile.jsview-contact.js,但在此次迭代中,只能包含view-index.js

然后上面的代码gulp.src()'进行处理,只有view-index.js才会进入流中。

修改

我接受了下面的答案,因为它指出我所拥有的东西不足以实现我的目标。我通过export/assets/js/**/*.js找到了一个解决方法,并通过gulp-ignore过滤掉了我不需要的内容。

1 个答案:

答案 0 :(得分:0)

由于minimatch并没有明确支持否定通配模式,因此大多数库实现类似于&#34;收集所有否定,现在在其余部分调用minimatch,现在应用所有否定。&#34;请参阅https://github.com/wearefractal/glob-stream/blob/master/index.js#L28(注意glob-streamvinyl-fs使用,公开为gulp's src。)