首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Gulp检查文件中是否存在令牌

使用Gulp检查文件中是否存在令牌
EN

Stack Overflow用户
提问于 2018-05-01 21:42:23
回答 1查看 194关注 0票数 0

如果我这么做:

代码语言:javascript
复制
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的方法,因为它已经在搜索和替换我的令牌了?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-04 04:19:36

我不认为有什么办法可以让你随心所欲地做你想做的工作。在流中设置条件是很麻烦的。

不过,您可以通过一个过滤器(吞咽式过滤器 )轻松地完成它。

代码语言:javascript
复制
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'));
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50124267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档