2012-03-12 90 views
35

我在我的Ubuntu Linux Box &上安裝rails(v3),安裝失敗,抱怨缺少javascript運行時。我做了一些查詢&事實證明,軌道需要在其運行的平臺上安裝JavaScript運行時。爲什麼rails需要JavaScript運行時?

雖然Windows默認捆綁了jscript。我的Ubuntu盒子沒有js運行時間&我通過安裝node.js(V8)解決了這個問題。

AFAIK,js運行時需要執行javascript代碼& rails只是一個嵌入了javascript的web框架。 Javascript文件只能在客戶端機器上運行。

因此, 爲什麼rails需要JavaScript運行時?

+3

http://guides.rubyonrails.org/asset_pipeline.html – lucapette 2012-03-12 18:56:20

+0

可能對CoffeeScript來說,如果我不得不猜測的話。 – SLaks 2012-03-12 18:56:28

+0

有一個答案,但我同意這是一種不合邏輯和惱人的鐵軌。但是無所謂。 – 2014-12-15 16:15:31

回答

28

調查Rails Asset Pipeline。它使用JavaScript(和CSS)文件做一些花哨的東西。值得注意的是:

  1. 它轉換的CoffeeScript到JavaScript
  2. 它結合了所有的JavaScript文件合併爲一個
  3. 它minifies該文件

的JavaScript運行是used for minification

+0

所以它只是在開發中需要嗎? – 2014-08-03 20:24:08

+0

@David天宇Wong它取決於您是否在生產或開發中編譯資產 – tybro0103 2014-08-04 18:41:23

+4

值得注意的是,處理JavaScript(不執行它)主要*不會*需要JavaScript運行時。 Rails資產管道需要JavaScript運行時的原因是,它使用像CoffeeScript和uglifier這樣的工具進行處理,這些工具本身是在JavaScript中實現的,因此需要使用運行時。 – 2015-02-21 13:10:09

1

Railsguides表示,它已經與壓縮辦:

您將需要一個ExecJS爲了使用uglifier支持的運行時。如果您使用的是Mac OS X或Windows,則在操作系統中安裝了JavaScript運行時。查看ExecJS文檔以獲取有關所有受支持的JavaScript運行時的信息。

http://guides.rubyonrails.org/asset_pipeline.html#javascript-compression

我想我已經看到Rails的實際檢查的樣式表,並在您的應用程序的JavaScript兩者的有效性,但也許這只是SASS prepreocessing。

相關問題