2014-09-04 82 views
2

工作升级到0.9.0.1后,它似乎是CoffeeScript的包有两个问题:似乎CoffeeScript的套餐不能与流星0.9.0.1

  • 从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被修改,服务器重新启动。但是,从服务器端代码使用“毒刺”时未定义。更有趣的是,如果sunburn.coffee被修改为包含语法错误,则服务器将很高兴地重新启动并且不会报告错误。这导致我相信CoffeeScript文件甚至没有被编译。或者至少没有完全“连线”。

类似于此的代码在0.9以前的版本中工作。最后一个注意事项:如果sunburn.coffee被更改为普通的js文件,'Stinger'被重写为正常的javascript,并且文件路径在package.js中更新,那么上述工作正常。

感谢:-)

回答

3

你需要指定你的包实际上依赖于的CoffeeScript使编译发生:

api.use("coffeescript","client"); 

以前,只有将您的应用依赖于构建插件(少,CoffeeScript的等等),但是显然现在你必须指定你在包内部使用它们。

不相关,但你也应该在你的Package.describe中指定一个版本,并且测试api.export的存在是不相关的,因为我希望没有人再使用Meteor < 0.6.5。