【问题标题】:How can I pass arguments into a gulp task callback?如何将参数传递给 gulp 任务回调?
【发布时间】:2015-10-06 19:12:31
【问题描述】:

我正在尝试做两个任务,一个监视和构建任务。 监视任务调用我的“咖啡”任务,它将我的 .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()

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

有人可以解决我的问题吗?我在原则上做错了什么吗? 提前致谢。

【问题讨论】:

  • 我认为您的意思是“传递”参数,而不是“解析”参数?
  • 当然感谢@jbyrd

标签: coffeescript gulp


【解决方案1】:

coffee 任务不必是 gulp 任务。只需将其设为 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']

【讨论】:

    猜你喜欢
    • 2015-04-16
    • 1970-01-01
    • 2019-03-10
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多