2013-05-04 11 views
11

私のRailsアプリケーションの1つで、ExecJSはcoffeescriptのコンパイルエラーの行番号を表示していません。コーヒースクリプトソースの行番号は(ライン#6は、ERBファイルのためである)がないことをExecJSコーヒースクリプトでコンパイルエラーの行番号が表示されない(Railsのアセットパイプライン)

ExecJS::RuntimeError in Referrals#new 

Showing ~/MyApp/app/views/layouts/application.html.erb where line #6 raised: 

SyntaxError: unexpected IDENTIFIER 
    (in ~/MyApp/assets/javascripts/utils.js.coffee) 

注:私のコンパイルエラーメッセージは次のようになります。私はまだ行番号を取得しています私のアプリケーションの別の1、オン

は、構文エラーが次のようになります。

ExecJS::ProgramError in Projects#show 

Showing ~/OtherApp/app/views/layouts/application.html.erb where  line #17 raised: 

Error: Parse error on line 6: Unexpected 'STRING' 
(in ~/OtherApp/app/assets/javascripts/projects.js.coffee) 

だから、違いはExecJS::ProgramErrorは私に行番号を与えることであると思われます、どこにExecJS::RuntimeErrorとしてはありません。

誰もが行番号を取得する方法を知っていますか?なぜ私のアプリはコーヒー資産のコンパイル時にRuntimeErrorsを作成し、もう一方はProgramErrorsを与えていますか?私はRailsをチェックして、彼らは一致するようです。

コンパイルエラーを修正した場合、アプリケーションは正常に実行されます(実際にはコーヒーファイルが実際にコンパイルされます)。しかし、コンパイルエラーを指摘してくれてうれしいです。最初のアプリでは、決して行番号を指定あります第二に、常にある -

EDIT は、私はそれがExecJS RuntimeerrorですかProgramErrorは関係していないようですかということに気づきました。

+0

私は1.6.2で、この問題が発生しています。 – Narfanator

+0

@Narfanatorあなたは私の答えを見ましたか? –

+0

ええ;それは私に分かった。私も1.5.0に私を設定し、それは今良いです。私は機能が失われたことに驚いています。それは開発の核心です。 – Narfanator

答えて

18

私はそれを理解しました - それはcoffee-script-source gemバージョンのためです。行番号を指定していたアプリでは、bundle showはcoffee-script-sourceを1.4.0、他方のアプリはcoffee-script-sourceバージョンを1.6.1としています。

coffee-rails gemがこの依存関係を厳密に指定していないため(私のGemfilesで、私はgem 'coffee-rails', '3.2'を使用していました)、これに気づいていませんでした。 は、この問題を回避するだけで明示的にコーヒー・スクリプト・ソースの宝石のバージョン指定するには:

gem 'coffee-rails', '3.2.2' 
gem 'coffee-script-source', '1.5.0' 

bundle update coffee-script-sourceを。

これは、この不一致に遭遇する可能性のある他の人にも役立ちます。

+4

新しいバージョンが悪いほど奇妙です – Pencilcheck

+1

私は1.6.3を使用していますが、行番号はありません。基本的に役に立たないです。私は、coffeescriptのノードインストールによって提供されるバイナリを使用するように切り替えました – Rob

関連する問題