使用 Gulp 检查文件中是否存在标记
Use Gulp to check if a token exists in a file
如果我这样做:
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'));
});
我会:
替换ExampleFileTokens.config
中的令牌然后
重命名为ExampleFile.config
和
最后存入'./dest'
.
我的问题如下:
你如何检查 #{String}#
存在于
ExampleFileTokens.config
不使用 gulp.dest 如果令牌
不存在?
我知道我可以使用令牌搜索 javascript 中的文件,但是有没有办法使用 gulp-replace
,因为它已经在搜索和替换我的令牌?
我认为没有办法让 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'));
});
如果我这样做:
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'));
});
我会:
替换
ExampleFileTokens.config
中的令牌然后重命名为
ExampleFile.config
和最后存入
'./dest'
.
我的问题如下:
你如何检查
#{String}#
存在于ExampleFileTokens.config
不使用 gulp.dest 如果令牌 不存在?我知道我可以使用令牌搜索 javascript 中的文件,但是有没有办法使用
gulp-replace
,因为它已经在搜索和替换我的令牌?
我认为没有办法让 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'));
});