获取“文件基本名称”在gulp-replacer-task中 [英] Get "file basename" in gulp-replacer-task

查看:129
本文介绍了获取“文件基本名称”在gulp-replacer-task中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在操作一组文件,而且我正在使用gulp-replacer-task来根据当前管道中的文件的基本名称或路径,用字符串替换已处理文件的内容。

I'm manipulating a set of files and I am using gulp-replacer-task to replace the content of processed files with "strings" based on the basename or path of the file currently in the pipe-line.

如何获取当前管道中的文件属性?

How do i get at the file's properties currently in the pipe-line ?

gulp.task('svgbuild', function() {
    return gulp.src('./src/*.svg')
        .pipe(replace({
          patterns: [
            {
                match:       /STRING_TO_MATCH/g,
                replacement: function() {
                    // how to get the basename of the "file" in the stream;
                    var str = 'file.basename'              
                    // manipulate to get replacement string based on basename
                    var repl = str.toUpperCase()+'-inc'    
                    return repl;
                }
            }
            ]
        }))
});


推荐答案

稍晚于我希望的时间,使用咕嘟咕嘟的解决方案。这是我的gulpfile.js的样子:

Somewhat later than I hoped, but it appears I found a solution for the problem using gulp-tap. This is what my gulpfile.js looks like:

var gulp = require('gulp'),
    path = require('path'),
    replace = require('gulp-replace-task'),
    tap = require('gulp-tap');

gulp.task('svgbuild', function () {
    return gulp.src('*.txt')
        .pipe(tap(function (file) {
            return gulp.src(file.path)
                .pipe(replace({
                    patterns: [
                        {
                            match: /foo/g,
                            replacement: function () {
                                var ext = path.extname(file.path),
                                    base = path.basename(file.path, ext);

                                return base.toUpperCase() + '-inc'
                            }
                        }
                    ]
                }))
            .pipe(gulp.dest('build'));
        }));
});

这篇关于获取“文件基本名称”在gulp-replacer-task中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆