无法将 gulp-mocha 与 babel 6 一起使用

Unable to use gulp-mocha with babel 6

我正在尝试将 gulp-babel 与 gulp-mocha 一起使用,如下所示:

var mocha = require('gulp-mocha');
var babel = require('gulp-babel');

gulp.task('test', function() {
  return gulp.src('test/*.js', {read: false})
    .pipe(babel({presets: ['es2015']}))
    .pipe(mocha());
});

但这似乎不起作用,出现诸如

之类的错误
(function (exports, require, module, __filename, __dirname) { import {assert}
                                                              ^^^^^^
Unexpected reserved word

我在这里记录了这个案例https://github.com/tnguyen14/babel-gulp-mocha-test

我不确定我是否做错了什么?任何帮助将不胜感激。

编辑:请尝试使用节点 0.12。节点 4.x 将正常工作,但不会证明任何事情,因为它已经在此处的测试中支持 ES2015 方法,即 endsWith.

它适用于以下内容,并结合 .babelrc:

var gulp = require('gulp');
var babel = require('gulp-babel');
var mocha = require('gulp-mocha');
require("babel-core/register");

gulp.task('test', function () {
    return gulp.src('test/*.js', {read: false})
        .pipe(babel())
        .pipe(mocha({
            ui: 'tdd'
        }));
});

我缺少的是 babel-polyfilles2015 预设不提供新的 ES2015 功能,它只是帮助更新语法。

添加 polyfill 解决了这个问题。在此处查看有关此问题的更多详细信息 https://phabricator.babeljs.io/T2967