【问题标题】:Decorators not supported yet in 6.x error6.x 错误中尚不支持装饰器
【发布时间】:2015-12-08 12:40:12
【问题描述】:

我正在尝试在使用 Babel 进行转换时运行 Jasmine 测试。

每次我尝试运行用 Aurelia.js 语法编写的测试时,都会遇到不支持装饰器的错误(我的 Babel 版本是 6.3.15)

我的 .babelrc 文件中有以下内容:

.babelrc

{
  "presets":["es2015", "stage-0", "stage-1"],
  "plugins":["transform-class-properties", "transform-decorators"]
} 

它失败的sn-p是:

@inject(HttpClient)
export class Users {
  heading = "test";
  users = [];

Babel 肯定应该在给定包含插件的预设之一的情况下转换装饰器吗?即使失败了,我的 transform-decorators 插件不会捕获它吗?另外,最初这是用 Babel 5.8.23 完成的,我仍然看到这个错误,所以我将包号更改为最新

【问题讨论】:

    标签: javascript babeljs aurelia


    【解决方案1】:

    Babel 6 中的装饰器坏了!

    Here's babel 问题跟踪器中的问题。

    根据this reply,问题可能需要一段时间才能得到解决。

    降级到 Babel 5 后,确保您的 babel 选项具有 stage: 0es7.decorators 选项。这里是您需要配置选项的地方:

    【讨论】:

    • 啊,所以现在没有工作?我想我现在可以删除装饰器,但仍然可以方便地将它与最新版本挂钩
    • 鉴于他在 babel 问题中的所有讨论,可能有一种解决方法。 Babel 6 有问题,这就是他们没有更新 repl 的原因。在他们解决问题之前,您可能希望保持在 5 上。
    • 所以我得到了第 0 阶段,以及 build/babel-options 中的 es7 属性,以及 config.js 和 karma.conf.js 中的 es7 属性,但现在我收到有关“意外保留字导入”的错误"
    • 代码被转换了吗?源代码在调试器中是什么样子的?
    • 我使用 Jasmine 从命令行运行它。所以我或多或少只是进行配置更改,cmd jasmine 然后观察结果。我将如何调试它?
    【解决方案2】:

    确保您的 babel 选项包含以下内容:

    optional: [
      "es7.decorators",
      ...
    ]
    

    它们应该在 config.js(用于 SystemJS)和 karma.conf.js(用于 karma)中。

    【讨论】:

    • 我在 config.js 和 karma.conf.js 中都有这个。 .babelrc 文件中是否缺少某些内容?
    • 我在 .babelrc 中没有任何内容,而且一切都很好。 aurelia-navigation 示例应用也是如此。
    • 嗯,我会尝试删除 .babelrc 文件,看看会发生什么。目前我遇到了业力问题,所以我无法使用它,所以我现在尝试使用 jasmine 来运行规范
    • 是的,现在不起作用,它只是抱怨找不到 jasmin.json
    猜你喜欢
    • 2016-02-25
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 2018-06-11
    • 2018-12-30
    • 2020-12-29
    相关资源
    最近更新 更多