2014-09-04 29 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。