gulp-notify 如何与 gulp-if 一并使用
发布于 8 年前 作者 SPxiaomin 5450 次浏览 来自 问答

gulp.task(‘js’, function() { var condition; var jsDest = ‘./public/javascript/dest’; var stream = gulp.src(paths.js) .pipe(plumber({ errorHandler: notify.onError(‘Message:\n\t<%= error.message %>\nDetails:\n\tlineNumber: <%= error.lineNumber %>’) })) .pipe(jshint()) .pipe(notify(function(file) { if ( file.jshint.success ) { condition = true; return false; } condition = false;

			var errors = file.jshint.results.map(function(data) {
				if ( data.error ) {
					return 'line ' + data.error.line + ', col ' + data.error.character + ', ' + data.error.reason;
				}
			}).join('\n');
			return file.relative + ' (' + file.jshint.results.length +  ' errors)\n' + errors;
		}))
		.pipe(uglify())
		.pipe(rename({
			extname: '.min.js'
		}))
		.pipe(gulp.dest(jsDest))
		.pipe(livereload())
		.pipe(gulpif(condition, notify('Js: done -> <%= file.relative %>!')));     //这句话证明是无效的,为什么呢?无法达到实际的效果。。。

	return stream;
});

gujunmin@www:~/projects/forms-authentication$ gulp [09:50:02] Using gulpfile ~/projects/forms-authentication/gulpfile.js [09:50:02] Starting ‘jade’… [09:50:02] Starting ‘css’… [09:50:02] Starting ‘js’… Transformers.markdown is deprecated, you must replace the :markdown jade filter, with :marked and install jstransformer-marked before you update to jade@2.0.0. [09:50:03] Finished ‘jade’ after 836 ms [09:50:03] Finished ‘js’ after 824 ms [09:50:03] Finished ‘css’ after 880 ms [09:50:03] Starting ‘default’… [09:50:03] Finished ‘default’ after 84 ms File /home/gujunmin/projects/forms-authentication/public/javascript/src/lm.js was changed, task runnning… [09:50:16] Starting ‘js’… [09:50:16] gulp-notify: [Gulp notification] lm.js (1 errors) line 10, col 22, Missing semicolon. [09:50:16] /home/gujunmin/projects/forms-authentication/public/javascript/dest/lm.min.js reloaded. [09:50:16] Finished ‘js’ after 317 ms

有错误的时候,才有显示错误。没有错误的时候什么都没有显示。

请各位指教,O(∩_∩)O谢谢

回到顶部