4

My Rails 3.1.rc4アプリはうまくいきましたが、jsファイルをパイプラインに保存する適切な方法を見つけようとしています。私はapplication.js以外のファイルに任意のコードを配置した場合、私は次のエラーを取得する:ExecJSのRails 3.1アセットをコンパイルするときの問題

Started GET "/assets/application.js" for 127.0.0.1 at 2011-07-21 23:15:02 -0500 Compiled ~/Dropbox/Rails/myapp/app/assets/javascripts/application.js.coffee (224ms) (pid 69397) Error compiling asset application.js: ExecJS::ProgramError: SyntaxError: Reserved word "function" on line 1 (in /Users/micahalcorn/Dropbox/Rails/myapp/app/assets/javascripts/users/registrations.js.coffee) Served asset /application.js - 500 Internal Server Error

これは関係なく、どのファイル(この場合はregistrations)の起こりとにかかわらず、最初の「予約語」を主張しますファイル内の単語(varfunctionなど)。私はランタイム環境としてnode.jsを使用しています。宝石をコンパイルするcoffeescriptを削除し、それをRails 3.0アプリケーションのように扱うと、すべて正常に動作します。私は資産パイプラインを理解し、慣習に従いたいと思っています。何か提案ありがとう!

答えて

8

エラー

SyntaxError: Reserved word "function" on line 1 

のCoffeeScriptのコンパイラエラーです。 function->registrations.js.coffeeに変換するか、registrations.jsに名前を変更して、ファイルを生のJavaScriptとして読み取るようにします。

+0

私は生のjsをcsと混ぜることができると思っていました。簡単、十分にありがとう! –

+2

CoffeeScriptでraw JSをミックスすることもできますが(backticksを置くことで)、それを行うのは良い考えではありません。代わりに、JSを '.js'ファイルに保存し、コーヒースクリプトを' .js.coffee'ファイルに保存してください。スプロケットは、2つの言語を共存させることを容易にします。 –

+0

私は分かりません。 CoffeeScriptサイトによれば、「既存のJavaScriptライブラリをCoffeeScriptからシームレスに使用することができます(逆も同様です)。 – Nowaker

関連する問題