Ecmascript 6 Babel transpiling es7类修饰符意外令牌错误

Ecmascript 6 Babel transpiling es7类修饰符意外令牌错误,ecmascript-6,aurelia,babeljs,ecmascript-2016,transpiler,Ecmascript 6,Aurelia,Babeljs,Ecmascript 2016,Transpiler,我正在开发一个使用es6和es7代码的Aurelia应用程序,我正在尝试使用babel传输代码。我的packages.json文件中有以下内容 "scripts": { "babel": "babel --stage 1 -d AureliaWeb/ ../Test/Aurelia/ --extends babelrc", 我已安装以下软件包: "devDependencies": { "babel-core": "^6.10.4", "babel-plugin-syntax-deco

我正在开发一个使用es6和es7代码的Aurelia应用程序,我正在尝试使用babel传输代码。我的packages.json文件中有以下内容

"scripts": {
    "babel": "babel --stage 1 -d AureliaWeb/ ../Test/Aurelia/ --extends babelrc",
我已安装以下软件包:

"devDependencies": {
"babel-core": "^6.10.4",
"babel-plugin-syntax-decorators": "^6.8.0",
"babel-plugin-syntax-flow": "^6.8.0",
"babel-plugin-transform-es2015-modules-amd": "^6.8.0",
"babel-plugin-transform-es2015-modules-commonjs": "^6.10.3",
"babel-plugin-transform-es2015-modules-systemjs": "^6.9.0",
"babel-plugin-transform-flow-strip-types": "^6.8.0",
"babel-preset-es2015": "^6.9.0",
"babel-preset-es2015-loose": "^7.0.0",
"babel-preset-react": "^6.11.1",
"babel-preset-stage-0": "^6.5.0",
"babel-preset-stage-1": "^6.5.0",
"babel-preset-stage-2": "^6.11.0",
"babel-preset-stage-3": "^6.11.0",
"babel-register": "^6.9.0",
"chai": "^3.5.0"
},
"dependencies": {
"babel-plugin-transform-class-properties": "^6.10.2",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-preset-es2015-loose": "^7.0.0",
"core-js": "^2.4.0",
"lodash": "^4.13.1"
}
我正在尝试传输es7代码,如下所示:

import {inject, noView} from 'aurelia-framework';
import {HttpClient} from 'aurelia-http-client';

@noView() <-- THIS IS CAUSING THE ERROR!!
@inject(HttpClient)
export class CompanyDataManager {
然而,我仍然找不到快乐!问题是

  • 当我在npm中执行babel脚本时,如何确认我的babelrc文件已被拾取?我试着添加--extensed babelrc试图强制它,但我不确定这是否正确
  • 我还尝试在babel命令中指定一个插件,如下所示:

    “babel--插件babel插件转换装饰器遗留--第1阶段-d AureliaWeb/。/Test/Aurelia/”

  • 仍然没有运气,任何帮助都将不胜感激

    更新1

    在搞乱了.bablerc文件之后,我想我可能把它放错了位置。我的结构如下(它是一个mvc应用程序)


    • Test.UnitTest(Project)我认为您只需要删除括号:

      @noView
      @inject(HttpClient)
      export class CompanyDataManager {
      
      例如,见:

      ______

      注意:当您在
      .babelrc
      (或
      package.json
      )中声明巴贝尔插件时,您可以删除前缀
      巴贝尔插件-

      [
        "syntax-decorators",
        "syntax-flow",
        "transform-decorators-legacy",
        "transform-class-properties",
        "transform-flow-strip-types"
      ]
      
      ______

      当我执行babel脚本时,如何确认我的babelrc文件已被拾取


      Babel在调用它的目录中查找
      .babelrc
      或带有
      “Babel”
      属性的
      package.json
      。只要您拥有其中一个,并且在同一目录中执行Babel,Babel就会找到它。

      我已经回答了我自己的问题,详细信息在主帖子中


      babel文件需要放在源文件夹中,而不是目标文件夹或执行babel的位置。

      感谢您的响应,我尝试删除括号,但是我仍然收到相同的错误。您是否同时需要
      语法修饰符
      传统修饰符
      ?我想你只需要第二个。我已经删除了语法修饰符,但是我仍然得到相同的结果。
      class Example {
          @dec
          static prop = i++;
      }
      
      [
        "syntax-decorators",
        "syntax-flow",
        "transform-decorators-legacy",
        "transform-class-properties",
        "transform-flow-strip-types"
      ]