2014-02-24 5 views
5

Ich versuche, zwei Aufgaben zu machen, eine Uhr und Build-Aufgabe. Die Überwachungsaufgabe ruft meine "Kaffee" Aufgabe auf, die meine .coffee Dateien in Javascript kompiliert. Die Build-Aufgabe sollte grundsätzlich das gleiche tun, außer dass ich einen Boolean in die Funktion analysieren möchte, so dass ich den Code einschließlich Quellkarten kompilieren kann.Wie kann ich Argumente in einen Schluck Task Callback übergeben?

gulp = require 'gulp' 
gutil = require 'gulp-util' 
clean = require 'gulp-clean' 
coffee = require 'gulp-coffee' 

gulp.task 'clean', -> 
    gulp.src('./lib/*', read: false) 
     .pipe clean() 

gulp.task 'coffee', (map) -> 
    gutil.log('sourceMap', map) 
    gulp.src('./src/*.coffee') 
    .pipe coffee({sourceMap: map}).on('error', gutil.log) 
    .pipe gulp.dest('./lib/') 

# build app 
gulp.task 'watch', -> 
    gulp.watch './src/*.coffee', ['coffee'] 

# build app 
gulp.task 'build', -> 
    gulp.tasks.clean.fn() 
    gulp.tasks.coffee.fn(true) 

# The default task (called when you run `gulp` from cli) 
gulp.task 'default', ['clean', 'coffee', 'watch'] 

Hat jemand eine Lösung für mein Problem? Mache ich etwas grundsätzlich falsch? Vielen Dank im Voraus.

+0

Ich denke, Sie meinen "Pass" Argumente, nicht "Parsen" Argumente? – jbyrd

+0

danke @jbyrd natürlich – Flow

Antwort

6

Die coffee Aufgabe muss keine Schluckaufgabe sein. Mach es einfach zu einer JavaScript-Funktion.

gulp  = require 'gulp' 
gutil  = require 'gulp-util' 
clean  = require 'gulp-clean' 
coffee  = require 'gulp-coffee' 

gulp.task 'clean', -> 
    gulp.src('./lib/*', read: false) 
     .pipe clean() 

compile = (map) -> 
    gutil.log('sourceMap', map) 
    gulp.src('./src/*.coffee') 
    .pipe coffee({sourceMap: map}).on('error', gutil.log) 
    .pipe gulp.dest('./lib/') 

# build app 
gulp.task 'watch', -> 
    gulp.watch './src/*.coffee', => 
    compile(false) 

# build app 
gulp.task 'build', ['clean'], -> 
    compile(true) 

# The default task (called when you run `gulp` from cli) 
gulp.task 'default', ['clean', 'build', 'watch']