console.log 到 gulp 事件的标准输出
console.log to stdout on gulp events
我想在 gulp 任务 运行ning 或有 运行.
时记录到标准输出(配置环境)
像这样:
gulp.task('scripts', function () {
var enviroment = argv.env || 'development';
var config = gulp.src('config/' + enviroment + '.json')
.pipe(ngConstant({name: 'app.config'}));
var scripts = gulp.src('js/*');
return es.merge(config, scripts)
.pipe(concat('app.js'))
.pipe(gulp.dest('app/dist'))
.on('success', function() {
console.log('Configured environment: ' + environment);
});
});
我不确定我应该响应什么事件或在哪里可以找到这些事件的列表。任何指针?非常感谢。
(2017 年 12 月,提供日志记录的 gulp-util
模块 was deprecated。Gulp 团队建议开发人员将此功能替换为 fancy-log
模块。此答案已更新以反映这一点。)
fancy-log
提供日志记录,最初由 Gulp 团队构建。
var log = require('fancy-log');
log('Hello world!');
要添加日志记录,Gulp's API documentation 告诉我们 .src
returns:
Returns a stream of Vinyl files that can be piped to plugins.
Node.js 的 Stream
文档提供了事件列表。放在一起,这是一个例子:
gulp.task('default', function() {
return gulp.src('main.scss')
.pipe(sass({ style: 'expanded' }))
.on('end', function(){ log('Almost there...'); })
.pipe(minifycss())
.pipe(gulp.dest('.'))
.on('end', function(){ log('Done!'); });
});
注意:end
事件可能会在插件完成(并已发送其所有输出)之前被调用,因为该事件在 "all data has been flushed to the underlying system".
时被调用
(请注意 - 2017 年 12 月,gulp-util
模块已弃用。)
基于 Jacob Budin 的答案,我最近尝试了这个并发现它很有用。
var gulp = require("gulp");
var util = require("gulp-util");
var changed = require("gulp-changed");
gulp.task("copyIfChanged", function() {
var nSrc=0, nDes=0, dest="build/js";
gulp.src("app/**/*.js")
.on("data", function() { nSrc+=1;})
.pipe(changed(dest)) //filter out src files not newer than dest
.pipe(gulp.dest(dest))
.on("data", function() { nDes+=1;})
.on("finish", function() {
util.log("Results for app/**/*.js");
util.log("# src files: ", nSrc);
util.log("# dest files:", nDes);
});
}
更新(2021 年 4 月):
重新弃用的模块问题。
尝试用 require('fancy-log')
中的 log
替换 require('gulp-util')
中的 util.log
。该方法的其余部分应该仍然有效。免责声明:我还没有测试过这个。
遗憾的是 gulp.util
已弃用。
使用 fancy-log
代替:
https://www.npmjs.com/package/fancy-log.
我想在 gulp 任务 运行ning 或有 运行.
时记录到标准输出(配置环境)像这样:
gulp.task('scripts', function () {
var enviroment = argv.env || 'development';
var config = gulp.src('config/' + enviroment + '.json')
.pipe(ngConstant({name: 'app.config'}));
var scripts = gulp.src('js/*');
return es.merge(config, scripts)
.pipe(concat('app.js'))
.pipe(gulp.dest('app/dist'))
.on('success', function() {
console.log('Configured environment: ' + environment);
});
});
我不确定我应该响应什么事件或在哪里可以找到这些事件的列表。任何指针?非常感谢。
(2017 年 12 月,提供日志记录的 gulp-util
模块 was deprecated。Gulp 团队建议开发人员将此功能替换为 fancy-log
模块。此答案已更新以反映这一点。)
fancy-log
提供日志记录,最初由 Gulp 团队构建。
var log = require('fancy-log');
log('Hello world!');
要添加日志记录,Gulp's API documentation 告诉我们 .src
returns:
Returns a stream of Vinyl files that can be piped to plugins.
Node.js 的 Stream
文档提供了事件列表。放在一起,这是一个例子:
gulp.task('default', function() {
return gulp.src('main.scss')
.pipe(sass({ style: 'expanded' }))
.on('end', function(){ log('Almost there...'); })
.pipe(minifycss())
.pipe(gulp.dest('.'))
.on('end', function(){ log('Done!'); });
});
注意:end
事件可能会在插件完成(并已发送其所有输出)之前被调用,因为该事件在 "all data has been flushed to the underlying system".
(请注意 - 2017 年 12 月,gulp-util
模块已弃用。)
基于 Jacob Budin 的答案,我最近尝试了这个并发现它很有用。
var gulp = require("gulp");
var util = require("gulp-util");
var changed = require("gulp-changed");
gulp.task("copyIfChanged", function() {
var nSrc=0, nDes=0, dest="build/js";
gulp.src("app/**/*.js")
.on("data", function() { nSrc+=1;})
.pipe(changed(dest)) //filter out src files not newer than dest
.pipe(gulp.dest(dest))
.on("data", function() { nDes+=1;})
.on("finish", function() {
util.log("Results for app/**/*.js");
util.log("# src files: ", nSrc);
util.log("# dest files:", nDes);
});
}
更新(2021 年 4 月):
重新弃用的模块问题。
尝试用 require('fancy-log')
中的 log
替换 require('gulp-util')
中的 util.log
。该方法的其余部分应该仍然有效。免责声明:我还没有测试过这个。
遗憾的是 gulp.util
已弃用。
使用 fancy-log
代替:
https://www.npmjs.com/package/fancy-log.