2016-09-30 37 views
0

比方說,我有一個名爲foobar.js.erb.coffee的文件。資產文件在rails中編譯時,預處理器引擎如何運行?

我很困惑當rails應用程序編譯時如何解釋這個文件。我的理解如下: 1)Coffeescript預處理器引擎從coffeescript解釋爲ruby(erb)。 2)ERB預處理器引擎將ruby轉換爲javscript。

我能理解這個嗎?

回答

1

例如,foobar.js.erb.coffee

的文件的擴展將被由兩個部分組成:接着處理程序(.erb.coffee)的格式(foobar.js)。

處理程序是模板或模板語言的預處理程序。有許多內置的處理程序,還有更多可以通過使用額外的寶石來添加。

轉換順序是從右到左。

就你而言,CoffeeScript引擎試圖將CoffeeScript轉換爲JavaScript(由於現有的ERB可能會導致CoffeeScript具有無效的語法,因此可能會發生錯誤),然後ERB處理程序會將所有Ruby代碼替換爲輸出值應該是。

我總是把.erb換成這種情況。例如,main.css.scss.erbapp.js.es6.erb