我正在学习使用gulp.I采取了一个例子,我尝试根据名称复制文件,如果奇怪的话将其移动到奇数文件夹,否则将其移动到偶数。但有些目标文件夹搞砸了。这是文件夹结构和代码。
1
--my
----new
-----2.txt
----1.txt
----2.txt
g = gulp.src '**/*.txt', cwd: '1'
g.pipe map (file,cb)->
filename = path.basename file.path, path.extname(file.path)
if filename % 2
dest = 'odd'
else
dest = 'even'
debugger
console.log 'destination ',dest
g.pipe gulp.dest dest
cb null,file
它正在将偶数文件名复制到奇数文件夹。它是关于记住的目标文件夹(我认为关闭)
答案 0 :(得分:0)
如果你真的只有两个输出目的地,最简单的解决方案可能是使用the gulp-if
plugin,就像这样(我不使用CoffeeScript,所以你必须自己转换):
var _if = require('gulp-if');
function fileIsOdd(file) {
return path.basename(file.path, path.extname(file.path)) % 2;
}
// in your task
gulp.src('**/*.txt', {cwd: '1'})
.pipe(_if(fileIsOdd, gulp.dest('odd'), gulp.dest('even')))
这样做是使用fileIsOdd
函数处理单个文件。如果函数返回truthy值,则处理第一个参数,否则处理第二个参数。