首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gulp任务似乎运行两次,而不是一次

Gulp任务似乎运行两次,而不是一次
EN

Stack Overflow用户
提问于 2015-02-07 08:57:25
回答 2查看 1.7K关注 0票数 1

问题

我的任务似乎运行了两次而不是一次,试图修复一些人认为罪魁祸首可能存在于Gulpfile.js的默认任务中

Gulpfile.js

代码语言:javascript
复制
// Include Gulp
var gulp = require('gulp');

// All of your plugins
var autoprefixer = require('gulp-autoprefixer');
var imagemin = require('gulp-imagemin');
var jshint = require('gulp-jshint');
var livereload = require('gulp-livereload');
var minify = require('gulp-minify-css');
var notify = require('gulp-notify');
var rename = require('gulp-rename');
var sass = require('gulp-sass');
var uglify = require('gulp-uglify');
var watch = require('gulp-watch');

// Compile CSS, Autoprefix
gulp.task('styles', function() {
  return gulp.src('assets/css/style.scss')
    .pipe(sass({ style: 'expanded' }))
    .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
    .pipe(gulp.dest('assets/css'))
    // .pipe(rename({suffix: '.min'}))
    // .pipe(minify())
    .pipe(gulp.dest('assets/css'))
    .pipe(notify({ message: "Watson: I've organized your files for you." }));
});

// Lint, Concatenate and Minify JavaScript
gulp.task('scripts', function() {
  return gulp.src('assets/js/scripts.js')
    .pipe(jshint())
    .pipe(jshint.reporter('default'))
    // .pipe(concat('scripts.js'))
    .pipe(gulp.dest('assets/js'))
    // .pipe(rename({suffix: '.min'}))
    // .pipe(uglify())
    .pipe(gulp.dest('assets/js'))
    .pipe(notify({ message: "Watson: I've done your dirty laundry." }));
});

// Watch files for changes
gulp.task('watch', function() {
    gulp.watch('assets/js/*.js', ['scripts', 'styles']);
    gulp.watch('assets/css/**/*.scss', ['styles']);
});

// Default Task
gulp.task('default', function() {
    gulp.start('styles', 'scripts', 'watch');
});

终端

代码语言:javascript
复制
[18:53:57] Using gulpfile ~/Desktop/Projects/legislature/Gulpfile.js
[18:53:57] Starting 'default'...
[18:53:57] Starting 'styles'...
[18:53:57] Starting 'scripts'...
[18:53:58] Starting 'watch'...
[18:53:58] Finished 'watch' after 26 ms
[18:53:58] Finished 'default' after 49 ms
[18:53:58] gulp-notify: [Gulp notification] Watson: I've organized your files for you.
[18:53:58] Finished 'styles' after 262 ms
[18:53:58] gulp-notify: [Gulp notification] Watson: I've done your dirty laundry.
[18:53:58] Finished 'scripts' after 256 ms
[18:53:58] Starting 'scripts'...
[18:53:58] Starting 'styles'...
[18:53:58] gulp-notify: [Gulp notification] Watson: I've done your dirty laundry.
[18:53:58] Finished 'scripts' after 232 ms
[18:53:58] gulp-notify: [Gulp notification] Watson: I've organized your files for you.
[18:53:58] Finished 'styles' after 232 ms
EN

回答 2

Stack Overflow用户

发布于 2015-02-07 18:29:12

您的scripts任务将写入watch任务正在监视的同一文件夹。Watch随后会按照指定的方式运行scriptsstyles任务:

代码语言:javascript
复制
gulp.watch('assets/js/*.js', ['scripts', 'styles']);
票数 1
EN

Stack Overflow用户

发布于 2016-04-05 08:39:32

您的问题是:您有两行相同的代码来保存文件并触发两次。

在您的脚本任务中

代码语言:javascript
复制
.pipe(gulp.dest('assets/js'))

对于新人来说,还有其他可能的问题。

我在这里写道,我的经历可能会对某些人有所帮助。

我在我的项目中使用Dropbox,并在那里工作。当Dropbox打开时,任务会运行两次,因为Dropbox会检测到文件更改并执行某些操作。特别是打字文件,我不知道为什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28377303

复制
相关文章

相似问题

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