Meteor 0.6.0中引入的文件级JavaScript变量范围 打破用TypeScript(和CoffeeScript)编写的项目和包 其他的转发器)。有没有办法禁用它?
例如,这个Typescript代码:
declare var Meteor: any;
module Model {
export var Players = new Meteor.Collection('players');
}
生成此JavaScript不再有效,因为Model不行 更长时间被认为是全球性的:
var Model;
(function (Model) {
Model.Players = new Meteor.Collection('players');
})(Model || (Model = {}));
预先this.Model = null;
是一种解决方法,但它是多余的,您必须将它应用于与Meteor一起使用的所有代码(至少打破了我的一个Meteorite软件包)。
引入Meteor特定JavaScript语言语义的原因是什么?
答案 0 :(得分:0)
它的方式有点好,因为在让所有这些文件共享变量之前有点奇怪。 Meteor将每个javascript文件一起处理,就像它们是一个一样。拥有更大的项目(> 20 js文件)使得模块化应用程序非常困难
我对打字稿不太确定,但建议使用@
制作一些全局内容,然后在coffeescript中声明它:http://docs.meteor.com/#coffeescript,也许有类似的东西打字稿? (@
来自coffeescript)
@myFunction = -> 123