几个小时内,我无法让我的Meteor包导出在CoffeeScript文件中定义的变量。
例如,在
最终,在查看Meteor github上的coffeescript测试包之后,我将
有任何想法为什么会这样吗?
我的包设置如下:
例如,在
foo.coffee
中,我尝试使用@Foo = {foo: 1}
,Foo = {foo: 1}
,exports.Foo = {foo: 1}
等等,但是什么都不起作用。最终,在查看Meteor github上的coffeescript测试包之后,我将
api.export();
调用放在了该包的api.on_use()
调用之前,然后它就正常工作了。有任何想法为什么会这样吗?
我的包设置如下:
foo/
.meteor/
.build/
foo.coffee
package.js
foo.coffee
class FooBar
constructor: ->
Foo =
FooBar: FooBar
package.js
Package.describe({
summary: "A package that makes foo with foobar"
});
Package.on_use(function(api) {
api.use("coffeescript", "client");
api.export("Foo", "client"); // <-- Moved this to *before* the on_use declaration
api.add_files("foo.coffee", "client");
});
coffeescript
包... - Joel Cornettapi.export
调用在api.add_files
之前声明变量(如我的问题所述)。我只是好奇为什么这样可以运行。 - Joel CornettFoo = this.Foo;
。 - Sinetheta