Babel没有改变装饰者

时间:2015-11-05 03:49:28

标签: gulp ecmascript-6 babeljs aurelia

请原谅我,如果我遗漏了一些明显的东西,我对javascript,ES2015等相对较新。

我有一个gulp任务在我的gulp-babel应用程序上运行Aurelia。一切都运行和工作,除了包含装饰器的文件(Aurelia的@inject

这些文件在gulp-notify中吐出相同的错误:

  

错误:(路径到文件)/ nav-bar.js:AssignmentExpression预期节点的属性属于[“Expression”]类型但是得到“Decorator”

我不确定如何开始解决这个问题。我的任务看起来像:

 gulp.task('build-system', function () {
    return gulp.src(paths.source)
          .pipe(plumber({errorHandler: notify.onError("Error: <%= error.message %>")}))
          .pipe(changed(paths.output, {extension: '.js'}))
          .pipe(sourcemaps.init({loadMaps: true}))
          .pipe(babel(compilerOptions))
          .pipe(sourcemaps.write({includeContent: true}))
          .pipe(gulp.dest(paths.output));
 });

和我的compilerOptions

 module.exports = {
   moduleIds: false,
   comments: false,
   compact: false,
   presets: ['es2015'],
   plugins: ['syntax-decorators', 'transform-decorators']
 };

任何见解将不胜感激!

1 个答案:

答案 0 :(得分:6)

我相信这是一个babel v6问题。 (这是presets: ['es2015']

所暗示的

如果你回到babel v5.x(包含在骨架中)它应该可以工作。

这是Babel Phabricator实例中的the decorator issue。可能需要一段时间才能根据this reply进行修复。