我正在寻找一种方法将文件名作为注释插入到流中的每个文件中。 因此,毕竟你将在连接的目标文件中有一个带有文件路径的注释行。
它现在做了什么:
pseudocode: concat(file1, file2)
# output:
# contents of file 1
# contents of file 2
我想要实现的目标:
pseudocode: concat(add_comments(file1, file2))
# output:
# // file1
# contents of file 1
# // file2
# contents of file 2
答案 0 :(得分:9)
您可以使用the gulp-wrap
plugin在连接之前添加文件名:
var wrap = require('gulp-wrap');
// in your task...
return gulp.src('src/**/*.js')
.pipe(wrap('//<%= file.path %>\n<%= contents %>'))
.pipe(concat('output.js'))
.pipe(gulp.dest('build'))
wrap包允许您使用lodash(或下划线)模板包装流中项目的内容。它会自动提供contents
和file.*
属性。
我创建的模板非常简单:它为注释输出两个斜杠,文件&#39; s path
,换行符,然后输出与传入的内容相同的内容。
答案 1 :(得分:2)
我用gulp-insert做到了。 它有一个“转换”功能,您可以在其中获得文件内容和Vinyl文件对象,然后返回新内容。所以你可以这样做:
.pipe(insert.transform(function(contents, file){
return '// ' + file.path + '\n' + contents;
}));