在我的gulpfile中,我有一个字符串中的版本号.我想将版本号写入文件.在Gulp中有一个很好的方法吗,或者我应该关注更一般的NodeJS API?
fre*_*nte 72
它几乎是节点中的单线程:
require('fs').writeFileSync('dist/version.txt', '1.2.3');
Run Code Online (Sandbox Code Playgroud)
或者从package.json:
var pkg = require('./package.json');
var fs = require('fs');
fs.writeFileSync('dist/version.txt', 'Version: ' + pkg.version);
Run Code Online (Sandbox Code Playgroud)
我正在使用它在一个易于访问的文件中指定构建日期,所以我return gulp.src(...)
在build
任务中通常使用此代码:
require('fs').writeFileSync('dist/build-date.txt', new Date());
Run Code Online (Sandbox Code Playgroud)
小智 70
如果您想以类似gulp的方式执行此操作,您可以创建一个"假"乙烯基文件流并按pipe
常规调用.这是创建流的功能."stream"是一个核心模块,因此您无需安装任何东西:
function string_src(filename, string) {
var src = require('stream').Readable({ objectMode: true })
src._read = function () {
this.push(new gutil.File({
cwd: "",
base: "",
path: filename,
contents: new Buffer(string)
}))
this.push(null)
}
return src
}
Run Code Online (Sandbox Code Playgroud)
你可以像这样使用它:
gulp.task('version', function () {
var pkg = require('package.json')
return string_src("version", pkg.version)
.pipe(gulp.dest('build/'))
})
Run Code Online (Sandbox Code Playgroud)
mjh*_*ach 28
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'));
});
Run Code Online (Sandbox Code Playgroud)
GOT*_*O 0 21
根据Gulp的维护者的说法,将字符串写入文件的首选方法是使用fs.writeFile
任务回调.
var fs = require('fs');
var gulp = require('gulp');
gulp.task('taskname', function(cb){
fs.writeFile('filename.txt', 'contents', cb);
});
Run Code Online (Sandbox Code Playgroud)
资料来源:https://github.com/gulpjs/gulp/issues/332#issuecomment-36970935
Dav*_*ler 14
你也可以使用gulp-file:
var gulp = require('gulp');
var file = require('gulp-file');
gulp.task('version', function () {
var pkg = require('package.json')
return gulp.src('src/**')
.pipe(file('version', pkg.version))
.pipe(gulp.dest('build/'))
});
Run Code Online (Sandbox Code Playgroud)
或不使用gulp.src()
:
gulp.task('version', function () {
var pkg = require('package.json')
return file('version', pkg.version, {src: true})
.pipe(gulp.dest('build/'))
});
Run Code Online (Sandbox Code Playgroud)
该一饮而尽头包可以使用头横幅前缀的文件.
例如.这将在您的javascript文件的标题中注入一个横幅.
var header = require('gulp-header');
var pkg = require('./package.json');
var banner = ['/**',
' * <%= pkg.name %> - <%= pkg.description %>',
' * @version v<%= pkg.version %>',
' * @link <%= pkg.homepage %>',
' * @license <%= pkg.license %>',
' */',
''].join('\n');
gulp.src('./foo/*.js')
.pipe(header(banner, { pkg: pkg } ))
.pipe(gulp.dest('./dist/')
Run Code Online (Sandbox Code Playgroud)
Gulp是一个利用管道的流媒体构建系统.
如果您只想编写带有任意字符串的新文件,则可以使用内置节点fs对象.
归档时间: |
|
查看次数: |
54299 次 |
最近记录: |