2

Meteor 0.6.0 で導入されたファイルレベルの JavaScript 変数スコープは、TypeScript (および CoffeeScript とおそらく他のトランスパイラー) で書かれたプロジェクトとパッケージを壊します。無効にする方法はありますか?

たとえば、次の Typescript コード:

declare var Meteor: any;
module Model {
  export var Players = new Meteor.Collection('players');
}

Model がグローバルと見なされなくなったため、機能しなくなった次の JavaScript を生成します。

var Model;
(function (Model) {
    Model.Players = new Meteor.Collection('players');
})(Model || (Model = {}));

プリペンディングthis.Model = null;は回避策ですが、冗長であり、Meteor で使用されるすべてのコードに適用する必要があります (私の Meteorite パッケージの少なくとも 1 つが壊れています)。

Meteor 固有の JavaScript 言語セマンティクスを導入した理由は何ですか?

4

1 に答える 1

0

これらすべてのファイルが変数を共有する前は少し奇妙だったので、彼のやり方は少しいいです。Meteor は、すべての JavaScript ファイルを 1 つのファイルとして扱いました。大規模なプロジェクト (20 個を超える js ファイル) があるため、アプリケーションのモジュール化が非常に困難でした

typescript についてはよくわかりませんが、 http@ ://docs.meteor.com/#coffeescript で coffeescript で宣言する前に何かをグローバルにするために使用することをお勧めします。(これはcoffeescriptから来ています)@

@myFunction = -> 123
于 2013-04-05T06:32:32.290 に答える