5

ウォッチとビルドの 2 つのタスクを作成しようとしています。.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']

誰かが私の問題の解決策を持っていますか? 私は原則として間違ったことをしていますか?前もって感謝します。

4

1 に答える 1

6

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']
于 2014-02-24T03:54:05.693 に答える