2017-02-20 50 views
1

我創建了一個具有構造函數和多個方法init的JavaScript類(名爲BarChart)。ExecJS :: ProgramError:SyntaxError:意外的標記:名稱<ClassName>

我執行以下命令爲生產環境預編譯資產但出錯。

命令用於預編譯的資產:rake assets:precompile RAILS_GROUPS=assets --trace

錯誤回溯:

rake aborted! 
ExecJS::ProgramError: SyntaxError: Unexpected token: name (BarChart) (line: 24472, col: 6, pos: 952834) 

Error 
    at new JS_Parse_Error (<eval>:3623:11948) 
    at js_error (<eval>:3623:12167) 
    at croak (<eval>:3623:22038) 
    at token_error (<eval>:3623:22175) 
    at unexpected (<eval>:3623:22263) 
    at semicolon (<eval>:3623:22781) 
    at simple_statement (<eval>:3623:25959) 
    at <eval>:3623:23747 
    at <eval>:3623:22954 
    at <eval>:3624:3759 
    at Object.parse (<eval>:3624:3999) 
    at parse (<eval>:3958:22) 
會拋出錯誤

Javascript類是這樣寫的:

class BarChart 
{ 
    // code goes here 
} 

我添加therubyracerexecjs Gemfile中的寶石。

Ruby:2.2.5

Rails:3.2.2`

PS:我檢查了幾個這種類型的問題在SO,但沒有一個問題是有關的JavaScript class

+0

似乎有兩個關閉問題的請求。有人可以向我解釋** close **問題請求的原因嗎?我還沒有找到JS類相關的問題。 –

+1

我投票決定關閉它,因爲我不明白 - 我不清楚。想象一下你自己對那些對你的問題毫無頭緒的人的描述,並用一種​​能理解的方式來描述它。越好(不要混淆「你越描述這個問題」),獲得正確答案的可能性就越大。 –

+0

選中此鏈接。希望這會幫助你。 http://www.academytimes.com/solved/7392211522/rails-5-heorku-deploy-error-execjsprogramerror-syntaxerror-unexpected-token –

回答

0

我寫了ES6中的JavaScript,並且rails 3顯示錯誤,而ES6代碼。在rails中使用ES6的所有方法都不適用於rails 3.所以我將ES6轉換爲ES5代碼。

0

在您的BarChart js文件中,將所有let更改爲var。 然後預編譯應該成功。

0

在rails 5中,我解決了將.js文件重命名爲.js.es6的問題。奇怪的是,我的分段部署工作,我的生產部署沒有。