这是我当前的代码,用于将相关文件从我的源代码复制到我的构建目录。它不按预期工作
return gulp.src([
'src/**/*',
'!src/**/*(*.sass|*.scss|*.js)',
'!src/(components|config|elements|less|sass|scss|platforms)',
'src/console.js',
'src/cordova.js',
'src/config.xml',
]).pipe(plugins.copy("www", {prefix: 1}));
我的想法是:
好吧,我认为globArray中的元素顺序是一个优先级或类似的东西,例如在过滤掉后,console.js会被重新包围。它似乎不是这样:(
我该怎么办?
答案 0 :(得分:3)
因此,您面临的真正问题是缺乏“调试”的能力。或者'检查' gulp流中当前正在处理的内容。在我的工作流程中,有两个不可替代的gulp插件可以帮助找出正在发生的事情:
吞掉-重命名
var gutil = require(' gulp-util'); var rename = require(' gulp-rename');
现在,尝试将此代码段附加到您的示例中,如下所示:
var gutil = require('gulp-util');
var rename = require('gulp-rename');
.....
return gulp.src([
'src/**/*',
'!src/**/*(*.sass|*.scss|*.js)',
'!src/(components|config|elements|less|sass|scss|platforms)',
'src/console.js',
'src/cordova.js',
'src/config.xml',
]).pipe(rename(function(filepath) {
gutil.log(filepath.basename);
})).pipe(plugins.copy("www", {prefix: 1}));
然后你要做的就是查看日志中的输出以查看正在处理的文件,然后相应地更新你的globbing。
此外,你最好逐个或成对地测试你的路径,看看你是否在正确的轨道上,所以当所有的球都没有按预期工作时你不会被淹没。隔离glob问题并相应地更新。
这只是一个让你走上正确轨道的暗示,这个全球:
'!src/**/*(*.sass|*.scss|*.js)'
需要:
'!src/**/*.{sass,scss,js}'
我希望这能让你走上正轨!