首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gulp文件运行任务并通知两次

Gulp文件运行任务并通知两次
EN

Stack Overflow用户
提问于 2015-01-23 00:59:59
回答 1查看 2.9K关注 0票数 5

我刚刚开始第一次使用gulp,需要我想要使用的所有插件,并编写了sass编译的第一个任务。它似乎有效,但有两个问题,首先,当我在命令行上输入gulp时,似乎需要3或4秒才能启动,这似乎比咕噜慢(我开始使用gulp,因为我知道它更快)。这是正常的吗?

但是,主要的问题是,我有一个默认任务,它调用sass任务。命令行输出似乎表明这两者都在运行,这意味着sass被编译了两次。它还输出了我的一次吞咽-通知通知两次,这似乎不对。

这是命令行输出..。

代码语言:javascript
复制
λ gulp default
[00:53:40] Using gulpfile ~\Desktop\jon\gulpfile.js
[00:53:40] Starting 'sass'...
[00:53:40] Finished 'sass' after 10 ms
[00:53:40] Starting 'default'...
[00:53:40] Finished 'default' after 7.93 μs
[00:53:41] gulp-notify: [Gulp notification] Css created
[00:53:41] gulp-notify: [Gulp notification] Css created

这是我的完整文件..。

代码语言:javascript
复制
var gulp = require('gulp'),
    gutil = require('gulp-util'),
    compass = require('gulp-compass'),
    rename = require('gulp-rename'),
    uglify = require('gulp-uglify'),
    watch = require('gulp-watch'),
    concat = require('gulp-concat'),
    notify = require('gulp-notify'),
    jshint = require('gulp-jshint'),
    autoprefixer = require('gulp-autoprefixer'),
    minifyCSS = require('gulp-minify-css'),
    traceur = require('gulp-traceur'),
    svgmin = require('gulp-svgmin'),
    imagemin = require('gulp-imagemin'),
    ngAnnotate = require('gulp-ng-annotate'),
    expect = require('gulp-expect-file'),
    sourcemaps = require('gulp-sourcemaps');

var paths = {
    src: "src",
    css: "stylesheets",
    img: "images",
    js:  "js"
}


// Compile Our Sass
gulp.task('sass', function() {

    gulp.src(paths.src + '/sass/*.scss')
        .pipe(sourcemaps.init())
        .pipe(compass({
            sass: 'src/sass',
            environment: 'development',
            outputStyle: 'expanded',
            debugInfo: false,
            noLineComments: true
        }))
        .pipe(autoprefixer('> 5%', 'last 2 version', 'ie 9'))
        .pipe(sourcemaps.write('./'))
        .pipe(gulp.dest(paths.css))
        .pipe(notify({ message: 'Css created' }));

});


// Dev Task
gulp.task('default', ['sass']);

有人知道这是怎么回事吗?我是否误解了如何执行任务?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-23 15:20:22

如果您只希望每个流只发出一个通知,则使用gulp的onLast选项:

代码语言:javascript
复制
//...
.pipe(notify({message: 'Css created', onLast: true}));
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28101418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档