2013-07-23 59 views
0

我正在嘗試使用coffeescript,玉和摩卡設置應用程序。但是,當我運行摩卡時,即使使用--compilers標誌,玉器模板也不會加載。在節點下集成編譯語言到JavaScript語言的正確方法?

我已經使用brunch做了類似的設置,並且jade模板會自動轉換爲commonjs模塊。在節點下,它們看起來並不像模塊那樣加載。 有沒有適當的方法來做到這一點?

現在,我正在摩卡像這樣:mocha --compilers coffee:coffee-script,jade:jade

回答

1

我敢肯定有辦法陪審團鑽機的東西沿着這些線路,但要明白的是,.coffee文件編譯成.js文件文件,當編寫爲CommonJS模塊時,節點可以運行它們。然而,.jade模板只是編譯成一個javascript函數,而不是一個完整的CommonJS模塊,所以節點本身永遠無法使用.jade模板,而沒有其他模塊實際上將這些獨立編譯模板函數集成到commonjs模塊系統。我猜想像brunch這樣的自動化構建工具正在添加一些包裝代碼樣板文件,以將模板製作成commonjs模塊。

+0

哦,我明白了。 '玉'適當將只呈現模板。我需要一些提供調用模板的函數來作爲模塊。 –

+0

它看起來像我需要'需要玉'(https://npmjs.org/package/require-jade) –

+0

是的,確切地說。我認爲這會做到這一點。 –

1

Grunt是一個很不錯的方法。

有插件coffeescript,jademocha

使用watch,您可以自動編譯文件更改。

編輯:這將是預編譯,而不是在飛行中呈現玉/咖啡。

編輯2:對於一般的咖啡/摩卡測試建議,我發現this article非常有幫助。

+0

grunt如何使玉器模板可用?現在我正在執行'require'views/templates/site''來加載site.jade,而這完全不起作用。 grunt如何使模板可用? –

+0

進入什麼樣的環境你加載它?您是否在使用其他模塊或框架?另外對於require語法,我相信它需要'./views/templates/site',但我不確定。 [模塊上的Node.js文檔](http://nodejs.org/api/modules.html) – max

+0

測試'需要'一個視圖,它需要一個模板。但是,當我在'mocha'(命令行亞軍)下運行時,失敗了。從那裏加載了coffeescript文件,但是jade文件卻沒有。 –