升级到0.9.0.1后,看起来CoffeeScript包有两个问题:
package.js的导出似乎不会被导出。
源文件似乎没有被编译。
package.js:
Package.describe({
summary: "sunburn"
});
Package.on_use(function (api, where) {
api.add_files(['lib/sunburn.coffee'], 'server');
api.export && api.export('Stinger', 'server');
});
Package.on_test(function (api) {
});
sunburn.coffee:
Stinger = -> "stinger here"
这是一个本地包。两个流星都会增加晒伤'和流星去除晒伤'工作得很好。如果修改了sunburn.coffee,则服务器将重新启动。然而,' Stinger'从服务器端代码使用时未定义。更有趣的是,如果修改sunburn.coffee以包含语法错误,服务器将很乐意重新启动并且不会报告错误。这就是让我相信CoffeeScript文件甚至不被编译的原因。或者,至少,没有完全"连接"。
类似于此的代码在pre 0.9版本中有效。
最后一个注意事项:如果将sunburn.coffee更改为普通的js文件,' Stinger'重写为普通的javascript,并在package.js中更新了文件路径,上面的工作正常。
谢谢: - )
答案 0 :(得分:3)
您需要指定您的包实际上依赖于coffeescript来进行编译:
api.use("coffeescript","client");
以前,只有你的应用程序依赖于构建插件(少,coffeescript等...)是好的,但显然现在你必须指定你也在包内使用它们。
不相关,但你也应该在你的Package.describe中指定一个版本,并且测试api.export的存在是无关紧要的,因为我希望没有人使用Meteor< 0.6.5了。