在我的gulpfile中,我有一个字符串形式的版本号。我想把版本号写到一个文件里。在Gulp中有没有很好的方法来做到这一点,或者我应该考虑更通用的NodeJS API?
发布于 2014-05-01 05:17:49
如果你想这样做,你可以创建一个“假的”黑胶文件流,并像往常一样调用pipe
。下面是一个用于创建流的函数。"stream“是一个核心模块,所以你不需要安装任何东西:
const Vinyl = require('vinyl')
function string_src(filename, string) {
var src = require('stream').Readable({ objectMode: true })
src._read = function () {
this.push(new Vinyl({
cwd: "",
base: "",
path: filename,
contents: Buffer.from(string, 'utf-8')
}))
this.push(null)
}
return src
}
你可以这样使用它:
gulp.task('version', function () {
var pkg = require('package.json')
return string_src("version", pkg.version)
.pipe(gulp.dest('build/'))
})
发布于 2015-05-26 18:03:02
这也可以使用vinyl-source-stream来完成。请参阅gulp存储库中的this document。
var gulp = require('gulp'),
source = require('vinyl-source-stream');
gulp.task('some-task', function() {
var stream = source('file.txt');
stream.end('some data');
stream.pipe(gulp.dest('output'));
});
发布于 2016-10-31 05:33:57
据Gulp的维护者介绍,将字符串写入文件的首选方式是使用带有任务回调的fs.writeFile
。
var fs = require('fs');
var gulp = require('gulp');
gulp.task('taskname', function(cb){
fs.writeFile('filename.txt', 'contents', cb);
});
来源:https://github.com/gulpjs/gulp/issues/332#issuecomment-36970935
https://stackoverflow.com/questions/23230569
复制相似问题