Meteor 0.6.0 中引入的文件級JavaScript變量範圍設定打破了用TypeScript(和CoffeeScript以及其他轉譯器)編寫的項目和包。有什麼辦法可以禁用它嗎?有什麼辦法可以禁用var範圍?
例如,這個打字稿代碼:
declare var Meteor: any;
module Model {
export var Players = new Meteor.Collection('players');
}
生成這個JavaScript不再有效,因爲型號不 不再被視爲全球:
var Model;
(function (Model) {
Model.Players = new Meteor.Collection('players');
})(Model || (Model = {}));
預謀this.Model = null;
是一個解決方法,但它是多餘的,你將不得不將它應用到Meteor使用的所有代碼中(至少破壞了我的Meteorite軟件包中的一個)。
介紹Meteor特定JavaScript語言語義的原因是什麼?
對流星GitHub的相關討論:全球應用程序變量和「使用嚴格」(https://github.com/meteor/meteor/issues/1380) – 2014-02-19 12:40:05