2012-01-12 9 views
0

私は自分で解決できないようなプリコンパイルの資産に本当に厄介で永続的な問題があります。コンパイルは、エラーのないファイルでは常に失敗します。たとえば、以下のエラーは、コメントがあるファイルcopies.js.coffeeにあります。そのファイルを削除すると、別のファイルにエラーが発生します。すべてのアセットファイルのタイプはus-asciiです。ファイルには奇妙な文字はありません。私はRails 3.1.3を使用しています。私はRuby 1.9.2と1.9.3の両方で試しました。違いはありません。Railsの資産は不思議なエラーをあらかじめコンパイルしています

$ rake assets:precompile --trace 
(in /cygdrive/c/Development/artwork2) 
** Invoke assets:precompile (first_time) 
** Execute assets:precompile 
/home/kari/.rvm/rubies/ruby-1.9.3-p0/bin/ruby.exe /home/kari/.rvm/gems/ruby-1.9.3-p0/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace 
** Invoke assets:precompile:all (first_time) 
** Execute assets:precompile:all 
** Invoke assets:precompile:primary (first_time) 
** Invoke assets:environment (first_time) 
** Execute assets:environment 
** Invoke tmp:cache:clear (first_time) 
** Execute tmp:cache:clear 
** Execute assets:precompile:primary 
rake aborted! 
湉異⁴牅潲㩲唠歮潮湷漠瑰潩⼢祣摧楲敶振唯敳獲欯牡⽩灁䑰瑡⽡潌慣⽬敔灭支數橣㉳㄰〲ㄱⴲ㔵〲㐭瀶湸⸱獪•灳捥晩敩⹤਍ 
    (in /cygdrive/c/Development/artwork2/app/assets/javascripts/copies.js.coffee) 
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:150:in `exec_runtime' 
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:27:in `block in exec' 
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:40:in `compile_to_tempfile' 
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:26:in `exec' 
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:18:in `eval' 
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:32:in `call' 
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/coffee-script-2.2.0/lib/coffee_script.rb:57:in `compile' 
/home/kari/.rvm/gems/ruby-1.9.3-p0/gems/tilt-1.3.3/lib/tilt/coffee.rb:46:in `evaluate' 

これは本当に迷惑で、私は前に出ることができません。私はここから、そして他のところから私が見つけたほとんどすべてを試しました。

追加:私はこの両方をCygwinとUbuntuの両方でrvmの下で試してみました。

+0

もう1つ追加しました:エラーメッセージが中国語の文字から 'UTF-16LEの'不完全な\ n "に変更されました。もう一度、すべてのファイルはUS-ASCIIです。私は 'file -i'でチェックしました。 –

+0

さらに別の追加:クロージャに切り替えることで違いはありません。私はここに指示に従った:http://stackoverflow.com/questions/7877180/ror-precompiling-assets-fail-while-rake-assetsprecompile-on-basically-empty-a –

+0

いくつかの進歩:レール3.2.0.rc2コンパイル変更のない資産。残念ながら、他の問題が現れました。 –

答えて

1

コーヒーレールに問題がありました。生成されたすべてのコーヒーファイルをアセットから削除しました。彼らは生成されたコメントしか含んでいませんでした。その後、資産は、そうしなければならないように集められました。どこかに悪いバグがあるはずです。それには数時間かかりました。この方法を提案してくれてありがとうございます。

2

javascriptファイルの外観は、何らかの形で無効です。

私はすべてが開発モードで正しく動作していると仮定しています。つまり、ブラウザのすべてが正しく機能していますか?

これがそうである場合、すべてのファイルがデバッグモードで提供されるため、コードは正しく開発されます。これらは連結または圧縮されていません。コンパイルされると、最初に連結され、圧縮されます。

問題は、含まれているファイルの1つに構文エラーがあり、セミコロンがないことが考えられます。 Javascriptコンプレッサーは、コードの1ブロックが終了し、別のブロックがどこで始まるかを判断するためにこれらを必要とします。最初に確認するのは、プラグインの定義の終わりです。問題が1つのファイルにあると仮定すると、時間に1つのファイルだけを削除し、実行するまでコンパイルして、原因を調べることができます。

+0

答えをありがとう。はい、すべて開発時に正しく動作します。私は今日後であなたのアドバイスを試みます。 cssとjsのためのより良いコンパイラ/コンプレッサーがないことは非常に奇妙です。 –

関連する問題