Babel没有改变装饰者

Jon*_*lis 5 ecmascript-6 gulp aurelia babeljs

请原谅我,如果我遗漏了一些明显的东西,我对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));
 });
Run Code Online (Sandbox Code Playgroud)

和我的compilerOptions:

 module.exports = {
   moduleIds: false,
   comments: false,
   compact: false,
   presets: ['es2015'],
   plugins: ['syntax-decorators', 'transform-decorators']
 };
Run Code Online (Sandbox Code Playgroud)

任何见解将不胜感激!

Mic*_*one 6

我相信这是一个babel v6问题.(这是你暗示的presets: ['es2015'])

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

这是Babel Phabricator实例中的装饰器问题.可能需要一段时间才能根据此回复进行修复.