Используйте Gulp, чтобы проверить, существует ли токен в файле - PullRequest
0 голосов

Если я сделаю это:

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, так как он уже ищет и заменяет мои токены?

1 Ответ

0 голосов
/ 04 мая 2018

Я не думаю, что есть способ заставить 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'));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...