2014-02-24 82 views
5

我正在嘗試做兩個任務,一個手錶和構建任務。 手錶任務調用我的'咖啡'任務,將我的.coffee文件編譯爲javascript。 構建任務應該基本上做同樣的事情,除了我想分析一個布爾函數,以便我可以編譯代碼包括源地圖。如何將參數傳遞給一個gulp任務回調?

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'] 

有人有我的問題的解決方案嗎?我在做原則上錯誤的東西嗎? 在此先感謝。

+0

我認爲你的意思是「傳遞」參數,而不是「解析」參數? – jbyrd

+0

謝謝@jbyrd當然 – Flow

回答

6

coffee任務不需要是一個吞嚥任務。只需將其設爲JavaScript功能即可。

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']