Gulpjs连接和文件名

时间:2014-04-19 11:26:36

标签: javascript gulp

我正在寻找一种方法将文件名作为注释插入到流中的每个文件中。 因此,毕竟你将在连接的目标文件中有一个带有文件路径的注释行。

它现在做了什么:

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

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(或下划线)模板包装流中项目的内容。它会自动提供contentsfile.*属性。

我创建的模板非常简单:它为注释输出两个斜杠,文件&#39; s path,换行符,然后输出与传入的内容相同的内容。

答案 1 :(得分:2)

我用gulp-insert做到了。 它有一个“转换”功能,您可以在其中获得文件内容和Vinyl文件对象,然后返回新内容。所以你可以这样做:

.pipe(insert.transform(function(contents, file){
    return '// ' + file.path + '\n' + contents;
}));