2016-03-09 2 views
0

Я использую Gulp v3.9.1 и перебегаю через gulpfile, который использует синтаксис, который мне чуждо. Ни одна из задач с этим синтаксисом не будет запущена.Синтаксис Strange gulp

gulp.task ('serve', [ 'js.lint', 'test' ],() => { 
     onError = eatError; 

     browserSync.init ({ 
      ui: false, 
      files: [ 
       'index2.html', 
       'tpl/**/*', 
       opts.srcDir + '/assets/img/**/*', 
       opts.srcDir + '/assets/less/**/*', 
       opts.srcDir + '/app/**/*', 
       opts.testDir + '/**/*', 
       'src/main/coverage/**/*' 
      ], 
      proxy: { 
       target: "localhost:8080", 
       proxyOptions: { 
        xfwd: true 
       } 
      } 
     }); 

     gulp.watch ([ 'gulpfile.js', opts.srcDir + '/app/**/*', opts.testDir + '/**/*' ], [ 'js.lint', 'test' ]); 
    }); 

В частности, я имею в виду () => на первой линии. Вот о чем жалуется глоток. Этот синтаксис немного похож на файл gulpfile CoffeScript, который я нашел, но я не уверен, что это такое. В проекте, использующем этот файл gulpfile, есть тонна пакетов, которые я просеиваю прямо сейчас, чтобы увидеть, имеют ли они какое-либо отношение к этому синтаксису. Я хочу знать, что представляет () =>, и как получить задания с использованием этого синтаксиса для запуска.

+0

es2015 выражения лямбда. «Функция толстой стрелки», вы можете заменить ее анонимной функцией (буквально просто замените '() =>' на 'function()') или сначала запустите ее через babel. – rlemon

+1

Возможный дубликат [Что значит «=>» (стрелка, образованная из равных & больше) в JavaScript?] (Http://stackoverflow.com/questions/24900875/whats-the-meaning-of-an- arrow-shaped-from-equals-more-than-in-javas) –

+1

Хм, на самом деле это может быть не самый лучший обман - только говорит о том, что '=>' на самом деле, а не как заставить его работать в вашей среде. Голосование отведено. –

ответ

2

Это синтаксис ES2015 для анонимной функции с внешним пространством this как контекст.

Чтобы получить этот синтаксис для работы с gulp, убедитесь, что имя файла gulpfile.babel.js, а не только gulpfile.js. Последние версии gulp знают, чтобы искать это имя и передавать его на лету, прежде чем запускать его, при условии, что у вас есть Babel.

+0

как это сделать? babel не собирается самостоятельно находить свои файлы и конвертировать их – rlemon

+0

@rlemon: потому что он встроен в последние версии Gulp для поддержки этого, если у вас есть Babel. Перед запуском файл gulpfile передается на лету. –

+0

Gulp неявно обрабатывает сборку babel в Gulpfiles. – max