【问题标题】:Babel not transforming decoratorsBabel 没有改造装饰器
【发布时间】:2016-02-05 19:19:06
【问题描述】:

如果我遗漏了一些明显的东西,请原谅我,我对 javascript、ES2015 等比较陌生。

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

那些文件在 gulp-notify 中吐出同样的错误:

错误:(path-to-file)/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']
 };

任何见解将不胜感激!

【问题讨论】:

    标签: gulp ecmascript-6 babeljs aurelia


    【解决方案1】:

    我相信这是一个 babel v6 问题。 (您的presets: ['es2015'] 暗示了这一点)

    如果您退回到 babel v5.x(包含在框架中),它应该可以工作。

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

    【讨论】:

    • 感谢@MichaelMalone。卸载gulp-babel 然后安装gulp-babel@5.3.0 解决了这个问题!很高兴知道这不是我的误解。
    猜你喜欢
    • 2016-02-21
    • 1970-01-01
    • 2016-02-11
    • 2017-02-04
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多