0

Visual Studio内でAu​​reliaを使用してWebサイトを構築しています。これにはbabelトランスパイラーがあり、構成ファイルは次のようになります

babelOptions: {
        "optional": [
              "optimisation.modules.system",
    "es7.decorators",
    "es7.classProperties",
    "es7.asyncFunctions",
    "runtime"
        ]
    },

Visual Studio がエラーを報告しています。Expected ';'ただし、これは正しい構文のようで、app.js は機能し、コンソールで問題なく app.html を参照できます。これが問題のコードです。

export class App {
    message = "Hello Aurelia";

    configureRouter(config, router) { /// <--- Expected ';'
        this.router = router;
        config.title = 'Aurelia';
        config.map([
          { route: ['', 'home'],       name: 'home',       moduleId: 'home/index' },
        ]);
    };
};

より標準的なjavascript行を使用しようとすると

let configureRouter = function(config, router) {};

また

this.configureRouter = function(config, router) {};

Visual Studio は問題を報告していませんが、Aurelia はError: (SystemJS) http://localhost:57366/src/app.js: Unexpected token (4:8)上記の両方のコンソールをスローします。

バベルトランスパイラーが使用しているのと同じインテリセンスをVisual Studioで使用する方法はありますか? または、何が問題になる可能性がありますか?

4

2 に答える 2

0

私は Aurelia の専門家ではありませんが、実際のエラーはコードのさらに下にあるのに、Visual Studio が行 X にエラーがあると表示することがあることは知っています。

8行目の終わりにあるべきではない「、」があると思います:

config.map([
      { route: ['', 'home'],       name: 'home',       moduleId: 'home/index' },
]);

おそらく次のようになります。

config.map([
      { route: ['', 'home'],       name: 'home',       moduleId: 'home/index' }
]);

Visual Studio は次のように考えています。

Foo({ "bar",
      "bar",
      "bar",
      "bar",
      });

は一行だけです。

于 2016-10-09T02:13:49.337 に答える
0

これは、答えというよりも回避策です。Visual Studio は es6 のモジュール部分をサポートしていないようです。Visual Studio の構成ファイルを探したり、サード パーティのツール/拡張機能を使用したりするのではなく、以下のソリューションが機能します。

代わりに、ファイルの最後でエクスポートを定義すると機能します。

class App {
    message = "Hello Aurelia";
    villy = "lawrence";

    configureRouter(config, router) {
        this.router = router;
        config.title = 'Aurelia';
        config.map([
          { route: ['', 'home'],       name: 'home',       moduleId: 'home/index' },
        ]);
    };
}

export { App };
于 2016-10-09T02:14:50.187 に答える