全局匹配,排除所有JS文件

Ale*_*exZ 60 glob pattern-matching node.js gulp

我是gulp.js的新用户.我想将所有非javascript文件移动到构建目录.我现在得到的是:

//Test copy
gulp.task('test-copy', function() {
    gulp.src(['myProject/src/**/*.!(js|map|src)'])
        .pipe(gulp.dest('myProject/build'));
});


//Results for various files
myProject/css/style.css //Copied - GOOD
myProject/html/index.html //Copied - GOOD
myProject/js/foo.js //Not Copied - GOOD
myProject/js/bar.min.js //Copied - BAD!
myProject/js/jquery-2.0.3.min.js //Copied - BAD!
myProject/js/jquery-2.0.3.min.map //Copied - BAD!
Run Code Online (Sandbox Code Playgroud)

如您所见,它只匹配文件路径字符串中的第一个点之后,而不是最后一个,如我所愿.如何修改glob搜索字符串以按照我的意愿行事?

Tur*_*oHz 126

试试这个glob模式:

myProject/src/**/!(*.js|*.map|*.src)
Run Code Online (Sandbox Code Playgroud)

  • 工作就像一个魅力.对于未来的落后者,这导致我的`.json`清单文件也被排除在外的问题.我这样修改了脚本,这意味着它仍然复制`config.js`或`*.json`文件:`myProject/src/**/*(config.js |*.json |!(*.js |*. SRC |*地图))` (23认同)
  • 即使这看起来很常见,这也很难遇到。 (2认同)