gpt4 book ai didi

javascript - Gulp bower 主要迷失自己

转载 作者:行者123 更新时间:2023-11-29 19:16:14 25 4
gpt4 key购买 nike

我的代码为:

var gulp = require('gulp');
var clean = require('gulp-clean');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var filter = require('gulp-filter');
var mainBowerFiles = require('main-bower-files');

var filterByExtension = function(extension){
return filter(function(file){
return file.path.match(new RegExp('.' + extension + '$'));
});
};

gulp.task('third', function(){
var mainFiles = mainBowerFiles();

if(!mainFiles.length){
// No main files found. Skipping....
return;
}

var jsFilter = filterByExtension('js');

return gulp.src(mainFiles)
.pipe(jsFilter)
.pipe(concat('third-party.js'))
.pipe(gulp.dest('./app'))
.pipe(jsFilter.restore())
.pipe(filterByExtension('css'))
.pipe(concat('third-party.css'))
.pipe(gulp.dest('./app'));
});

此处出现错误“return file.path.match(new RegExp('.' + extension + '$'))”,但这应该有效。有什么建议吗?

非常感谢。

最佳答案

您的问题是过滤器函数中的返回类型。 NodeJS,尤其是 Gulp 对你通过管道传递的类型非常挑剔。你只需要一次意外的返回就可以打破这个链条。

根据 gulp-filter,你的嵌套过滤器应该返回一个 bool 值,String.prototype.match 将返回一个匹配结果数组,如果没有匹配则返回 null。这足以破坏它,因为它不需要数组。

您可以使用返回 bool 值的 RegExp.prototype.test,或者检查 match(...).length > 0。一种可能的解决方法:

JS:

var filterByExtension = function(extension){  
return filter(function(file){
var matches = file.path.match(new RegExp('.' + extension + '$'));
return matches && matches.length > 0;
});
};

关于javascript - Gulp bower 主要迷失自己,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35158412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com