【问题标题】:Use Gulp to check if a token exists in a file使用 Gulp 检查文件中是否存在令牌
【发布时间】:2018-05-01 21:42:23
【问题描述】:

如果我这样做:

var gulp = require('gulp');
var replace = require('gulp-replace');
var rename = require('gulp-rename');

gulp.task('TaskExample', function ReplaceExampleFileTokens() {

    return gulp.src('./src/' + 'ExampleFileTokens.config')

        .pipe(replace('#{String}#', 'Hello World'))
        .pipe(rename('ExampleFile.config'))
        .pipe(gulp.dest('./dest'));
    });

我会的:

  1. 然后替换ExampleFileTokens.config中的令牌

  2. 将其重命名为ExampleFile.config

  3. 最后存入'./dest'

我的问题如下:

  • 如何检查#{String}# 是否存在于 ExampleFileTokens.config 如果令牌不使用 gulp.dest 不存在?

  • 我知道我可以使用令牌在 javascript 中搜索文件,但有没有办法使用 gulp-replace,因为它已经在搜索和替换我的令牌?

【问题讨论】:

    标签: javascript gulp gulp-replace


    【解决方案1】:

    我认为没有办法让 gulp-replace 完成您想要的所有工作。在流中设置条件很麻烦。

    不过,您可以使用过滤器轻松完成 (gulp-filter.

    const gulp = require('gulp');
    const replace = require('gulp-replace');
    const rename = require('gulp-rename');
    
    const filter = require('gulp-filter');
    const filterEach = require('gulp-filter-each')
    
    gulp.task("TaskExample", function () {
    
      // return true if want the file in the stream
      // const configFilter = filter(function (file) {       
      //   let contents = file.contents.toString();
      //   return contents.match('#{String}#');
      // });
    
      return gulp.src('./src/' + 'ExampleFileTokens.config')
    
        // you can use either of the following two filters
        // .pipe(configFilter)
        .pipe(filterEach(content => content.match('#{String}#')))
    
        .pipe(replace('#{String}#', 'Hello World'))
        .pipe(rename('ExampleFile.config'))
        .pipe(gulp.dest('./dest'));
    });
    

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 2021-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      • 2012-07-19
      相关资源
      最近更新 更多