请原谅我,如果我遗漏了一些明显的东西,我对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']
};
任何见解将不胜感激!
答案 0 :(得分:6)
我相信这是一个babel v6问题。 (这是presets: ['es2015']
)
如果你回到babel v5.x(包含在骨架中)它应该可以工作。
这是Babel Phabricator实例中的the decorator issue。可能需要一段时间才能根据this reply进行修复。