gulp-replace 仅替换文件夹中某些文件中的文本
gulp-replace only replacing text in some files in a folder
我正在使用 gulp replace 将字符串替换为我的 package.json 文件中的版本号,如下所示:
gulp.task('replace', ['uglify','process-html','copy-release'], function () {
return gulp.src([releaseFolder + '/**/*.html',releaseFolder + '/app.js'])
.pipe( debug({title:"replace files"}))
.pipe(replace( "__applicationVersionNumber__", packageJson.version ))
.pipe(gulp.dest(releaseFolder));
});
这有效,但是 releaseFolder/tempaltes/*.html 中的 6 个文件中只有 5 个被替换:
这是替换文件中的文本。 IE。替换完成后,它们将保存回同一位置。如果我将输出位置设置为不同,它们都会被替换,但它们已经在我需要的位置。
为什么最后一个文件丢失了?
谢谢
我的整个gulp文件在这里:
https://github.com/Roaders/YouTubeCommentator/blob/3808036d7ce1fa84e035bc01cc765c5dd7a1e008/gulpfile.js
基本上你所有的任务都在错误地发出信号async completion。对于每项任务,您应该执行以下两项中的一项一项:
- 如果您使用的是流,return 它来自任务函数
- 如果您不使用流,请调用回调函数
由于您似乎在所有任务中都使用了流,因此您可以去掉回调。
例如,您的 copy-release
任务应如下所示:
gulp.task('copy-release', ['clean'], function () {
return gulp.src([
'./templates/**/*.html',
'./lib/**/*.js',
'./assets/**/*.*',
'./css/**/*.css'
], {base: './'})
.pipe(gulp.dest(releaseFolder));
});
我正在使用 gulp replace 将字符串替换为我的 package.json 文件中的版本号,如下所示:
gulp.task('replace', ['uglify','process-html','copy-release'], function () {
return gulp.src([releaseFolder + '/**/*.html',releaseFolder + '/app.js'])
.pipe( debug({title:"replace files"}))
.pipe(replace( "__applicationVersionNumber__", packageJson.version ))
.pipe(gulp.dest(releaseFolder));
});
这有效,但是 releaseFolder/tempaltes/*.html 中的 6 个文件中只有 5 个被替换:
这是替换文件中的文本。 IE。替换完成后,它们将保存回同一位置。如果我将输出位置设置为不同,它们都会被替换,但它们已经在我需要的位置。
为什么最后一个文件丢失了?
谢谢
我的整个gulp文件在这里: https://github.com/Roaders/YouTubeCommentator/blob/3808036d7ce1fa84e035bc01cc765c5dd7a1e008/gulpfile.js
基本上你所有的任务都在错误地发出信号async completion。对于每项任务,您应该执行以下两项中的一项一项:
- 如果您使用的是流,return 它来自任务函数
- 如果您不使用流,请调用回调函数
由于您似乎在所有任务中都使用了流,因此您可以去掉回调。
例如,您的 copy-release
任务应如下所示:
gulp.task('copy-release', ['clean'], function () {
return gulp.src([
'./templates/**/*.html',
'./lib/**/*.js',
'./assets/**/*.*',
'./css/**/*.css'
], {base: './'})
.pipe(gulp.dest(releaseFolder));
});